version: "3" services: # service configuration for our database database: # use the preferred version of the official Postgres image # see https://hub.docker.com/_/postgres/ image: postgres:9.4.5 # persist the database between containers by storing it in a volume volumes: - docker-example-postgres:/var/lib/postgresql/data # service configuration for our dockerized Rails app app: # use the Dockerfile next to this file build: . entrypoint: /usr/local/bin/entrypoint.sh command: bundle exec rails s -p 3000 -b "0.0.0.0" working_dir: /var/www/consul # rely on the RAILS_ENV value of the host machine # environment: #RAILS_ENV: $RAILS_ENV # makes the app container aware of the DB container depends_on: - database # expose the port we configured Unicorn to bind to ports: - "3000:3000" # map our application source code, in full, to the application root of our container volumes: - .:/var/www/consul:delegated - bundle:/usr/local/bundle:delegated - "$SSH_AUTH_SOCK:/tmp/agent.sock" environment: - SSH_AUTH_SOCK=/tmp/agent.sock volumes: docker-example-postgres: {} bundle: {}