services: app: build: context: . dockerfile: Dockerfile ports: - "3000:3000" volumes: - .:/usr/src/app - /usr/src/app/node_modules environment: - DB_HOST=db - DB_USER=root - DB_PASSWORD=password - DB_NAME=battleship - COOKIE_SECRET_KEY=dhdgdnjejf networks: - app-network depends_on: - db db: image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: battleship ports: - "3306:3306" 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;'" networks: app-network: driver: bridge