voxblog/docker-compose.yml
adminuser 31c2b420eb
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
fix: update proxy config and db wiring
2025-10-25 23:29:04 +00:00

82 lines
2.0 KiB
YAML

version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: voxblog-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: voxblog
MYSQL_USER: voxblog
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
networks:
- voxblog-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
api:
build:
context: .
dockerfile: docker/api.Dockerfile
args:
PNPM_FLAGS: --no-frozen-lockfile
container_name: voxblog-api
restart: unless-stopped
ports:
- "127.0.0.1:3301:3301" # Only localhost, not internet
environment:
NODE_ENV: production
PORT: 3301
DATABASE_URL: mysql://voxblog:${MYSQL_PASSWORD}@mysql:3306/voxblog
DB_HOST: mysql
DB_PORT: 3306
DB_USER: voxblog
DB_PASSWORD: ${MYSQL_PASSWORD}
DB_NAME: voxblog
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
OPENAI_API_KEY: ${OPENAI_API_KEY}
GHOST_ADMIN_API_KEY: ${GHOST_ADMIN_API_KEY}
GHOST_ADMIN_API_URL: ${GHOST_ADMIN_API_URL}
S3_BUCKET: ${S3_BUCKET}
S3_REGION: ${S3_REGION}
S3_ACCESS_KEY: ${S3_ACCESS_KEY}
S3_SECRET_KEY: ${S3_SECRET_KEY}
S3_ENDPOINT: ${S3_ENDPOINT}
depends_on:
mysql:
condition: service_healthy
networks:
- voxblog-network
volumes:
- ./data:/app/data
admin:
build:
context: .
dockerfile: docker/admin.Dockerfile
args:
VITE_API_URL: ${VITE_API_URL:-http://localhost:3301}
PNPM_FLAGS: --no-frozen-lockfile
container_name: voxblog-admin
restart: unless-stopped
ports:
- "127.0.0.1:3300:80" # Only localhost, not internet
networks:
- voxblog-network
depends_on:
- api
networks:
voxblog-network:
driver: bridge
volumes:
mysql_data: