services: nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./docker/data/certbot/conf:/etc/letsencrypt - ./docker/data/certbot/www:/var/www/certbot depends_on: - app networks: - app-network restart: unless-stopped app: build: context: . dockerfile: Dockerfile # ports: # - "${PORT}:${PORT}" expose: - "${PORT}" environment: - ENV=${ENV} - HOST=${HOST} - PORT=${PORT} - JWT_SECRET=${JWT_SECRET} - CLIENT_URL=${CLIENT_URL} - REDIS_URL=${REDIS_URL} - DB_HOST=${DB_HOST} - DB_USER=${DB_USER} - DB_PASS=${DB_PASS} - DB_PORT=${DB_PORT} - DB_NAME=${DB_NAME} - ALLOW_DIAGONAL_MOVEMENT=${ALLOW_DIAGONAL_MOVEMENT} - DEFAULT_CHARACTER_ZONE=${DEFAULT_CHARACTER_ZONE} - DEFAULT_CHARACTER_POS_X=${DEFAULT_CHARACTER_POS_X} - DEFAULT_CHARACTER_POS_Y=${DEFAULT_CHARACTER_POS_Y} - SMTP_HOST=${SMTP_HOST} - SMTP_PORT=${SMTP_PORT} - SMTP_USER=${SMTP_USER} - SMTP_PASSWORD=${SMTP_PASSWORD} volumes: - app-public:/user/src/app/public - app-logs:/user/src/app/logs depends_on: - mariadb - redis restart: unless-stopped networks: - app-network mariadb: image: mariadb:lts environment: - MARIADB_USER=${DB_USER} - MARIADB_PASSWORD=${DB_PASS} - MARIADB_DATABASE=${DB_NAME} - MARIADB_RANDOM_ROOT_PASSWORD=yes volumes: - mariadb-data:/var/lib/mysql ports: - "${DB_PORT}:3306" restart: unless-stopped networks: - app-network command: ['mariadbd', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci'] redis: image: redis:7.4.2-alpine command: redis-server --appendonly yes volumes: - redis-data:/data ports: - "6379:6379" restart: unless-stopped networks: - app-network networks: app-network: driver: bridge volumes: app-public: app-logs: mariadb-data: redis-data: