You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
maettleship/docker-compose.yml

79 lines
1.7 KiB

services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
environment:
DB_HOST: db
DB_USER_FILE: /run/secrets/db_user
DB_USER_PASSWORD_FILE: /run/secrets/db_user_password
DB_NAME: battleship
COOKIE_SECRET_KEY: /run/secrets/cookie_key
secrets:
- db_user
- db_user_password
- cookie_key
networks:
- app-network
depends_on:
- db
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_password
MYSQL_USER_FILE: /run/secrets/db_user
MYSQL_PASSWORD_FILE: /run/secrets/db_user_password
MYSQL_DATABASE: battleship
secrets:
- db_user_password
- db_password
- db_user
ports:
- "3306:3306"
networks:
- app-network
volumes:
- ./db:/docker-entrypoint-initdb.d
nginx:
image: nginx:latest
ports:
- "8080:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- /etc/letsencrypt:/etc/letsencrypt
- /var/www/certbot:/var/www/certbot
depends_on:
- app
networks:
- app-network
certbot:
image: certbot/certbot
volumes:
- /etc/letsencrypt:/etc/letsencrypt
- /var/www/certbot:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h; done;'"
secrets:
db_user_password:
file: secrets/db_user_password.txt
db_user:
file: secrets/db_user.txt
db_password:
file: secrets/db_password.txt
cookie_key:
file: secrets/cookie_key.txt
networks:
app-network:
driver: bridge