Skip to content

Instantly share code, notes, and snippets.

@Siemko
Created July 7, 2020 07:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Siemko/bc0c1e93129ddec2b34debf7ef306468 to your computer and use it in GitHub Desktop.
Save Siemko/bc0c1e93129ddec2b34debf7ef306468 to your computer and use it in GitHub Desktop.
Development docker compose environment
version: "3.8"
services:
webapp:
image: node:lts-alpine # always using the same image - no building, less space taken
working_dir: /usr/app/webapp
volumes:
- "./webapp/package.json:/usr/app/webapp/package.json"
- "./webapp/yarn.lock:/usr/app/webapp/yarn.lock"
- "./webapp/tsconfig.json:/usr/app/webapp/tsconfig.json"
- "./webapp/tsconfig-paths.json:/usr/app/webapp/tsconfig-paths.json"
- "./webapp/craco.config.js:/usr/app/webapp/craco.config.js"
- "./webapp/src:/usr/app/webapp/src"
- "./webapp/public:/usr/app/webapp/public"
- "webapp_node_modules:/usr/app/webapp/node_modules"
working_dir: /usr/app/webapp
command: sh -c "yarn && yarn start" # can do whatever command you like
ports:
- "3000:3000" # it's dev env, so we can setup ports
depends_on:
- backend
env_file:
- .env
backend:
image: node:lts-alpine
volumes:
- "./backend/package.json:/usr/app/backend/package.json"
- "./backend/package-lock.json:/usr/app/backend/package-lock.json"
- "./backend/tsconfig.json:/usr/app/backend/tsconfig.json"
- "./backend/tsconfig.build.json:/usr/app/backend/tsconfig.build.json"
- "./backend/src:/usr/app/backend/src"
- "backend_node_modules:/usr/app/backend/node_modules"
working_dir: /usr/app/backend
command: sh -c "npm install && npm run start:dev"
ports:
- "4000:4000"
depends_on:
- db
- redis
env_file:
- .env
db:
image: postgres:12-alpine
env_file:
- .env
redis:
image: redis:6-alpine
env_file:
- .env
volumes: # virtual volumes for node_modules
webapp_node_modules:
backend_node_modules:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment