version: "3" services: web: build: context: . environment: PIDFILE: /tmp/pids/server.pid volumes: - .:/app # Prevent these directories from mounting so they're not shared between host OS and Docker - /app/node_modules/ # Mount a tmp directory that will persist between runs - web-tmp:/app/tmp # Mount a storage directory that will persist between runs - web-storage:/app/storage tmpfs: /tmp/pids/ ports: - "3000:3000" command: bundle exec rails s -p 3000 -b '0.0.0.0' depends_on: - db db: build: context: . dockerfile: docker/postgres/Dockerfile ports: - "54321:5432" environment: POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_DB: openstreetmap volumes: # Mount the Postgres data directory so it persists between runs - db-data:/var/lib/postgresql/data volumes: web-tmp: web-storage: db-data: