Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
How to share a /usr/local/bundle cache between Ruby build jobs
version: "2"
services:
dev:
image: ruby:2.3
volumes:
- .:/project
- ruby2.3-bundle-cache:/usr/local/bundle
working_dir: /project
volumes:
ruby2.3-bundle-cache:
external: true
#! /bin/bash -e
#
# Run rake inside a docker-compose sandbox
cd $(dirname $0)/..
trap "docker-compose down --volumes" 0
docker volume create --name ruby2.3-bundle-cache > /dev/null
docker-compose run --rm dev sh -c 'bundle check > /dev/null || flock $GEM_HOME bundle install'
docker-compose run --rm dev bundle exec rake "$@"
@mdub
Copy link
Author

mdub commented Apr 28, 2016

Note the flock $GEM_HOME stuff. We do because Bundler (or RubyGems) gets upset if you have multiple "bundle install" jobs pointed at the same directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment