Skip to content

Instantly share code, notes, and snippets.

@mdub
Last active September 25, 2018 11:20
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mdub/829acad6f1efaff1890dd4d9f83c909d to your computer and use it in GitHub Desktop.
Save mdub/829acad6f1efaff1890dd4d9f83c909d to your computer and use it in GitHub Desktop.
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