Skip to content

Instantly share code, notes, and snippets.

@Satch09
Last active May 30, 2022 08:14
Show Gist options
  • Save Satch09/6e4ba69904a37a801e7d38ea5dbf9e4a to your computer and use it in GitHub Desktop.
Save Satch09/6e4ba69904a37a801e7d38ea5dbf9e4a to your computer and use it in GitHub Desktop.
Docker-learning
version: "3.8"
# docker-compose automatically --rm
# all services defined within 1 docker-compose file
# will automatically be added to the same network
services:
# folder name + service name _1 = container name
mongodb:
container_name: "mongodb"
# override default docker-compose naming convention
image: "mongo"
volumes:
- data:/data/db
# compose will also auto create data volume
# containing folder name + _data
env_file:
# specify external secrets file
# "-" means list item
# KEY: value for single items
- ./env/mongo.env
# networks:
# - goals-net
# docker will also auto-create network but an already existing one
# may be specified
# name = containing folder name + _default
backend:
container_name: "backend"
# override default docker-compose naming convention
build: ./backend
ports:
- "80:80"
volumes:
- logs:/app/logs
# binded-mount, which is specified relative to docker-compose file
- ./backend:/app
- /app/node_modules
# context: /backend
# dockerfile: Dockerfile
# longer way of doing it, context folder can be specified
env_file:
- ./env/backend.env
depends_on:
# One may have to specify multiple services in order to start backend only for example. Setting depends_on automates starting support containers
- mongodb
frontend:
container_name: "frontend"
# override default docker-compose naming convention
build: ./frontend
ports:
- "3000:3000"
volumes:
- ./frontend/src:/app/src
- ./readonly:/readonly/folder:ro
# Note :ro to mount as ready only volume
stdin_open: true
tty: true
depends_on:
- backend
# in order to use the data volume above, it must be declared as below
volumes:
data:
logs:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment