diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0c8fbda --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,44 @@ +services: + backend: + build: + context: ./backend + dockerfile: Dockerfile + container_name: memberapi-backend + restart: unless-stopped + env_file: + - ./backend/.env + ports: + - "127.0.0.1:8000:8000" + depends_on: + redis: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8000/healthz >/dev/null || exit 1"] + interval: 30s + timeout: 5s + retries: 5 + start_period: 20s + networks: + - member-net + + redis: + image: redis:7-alpine + container_name: memberapi-redis + restart: unless-stopped + command: ["redis-server", "--appendonly", "yes"] + volumes: + - redis-data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 3s + retries: 5 + networks: + - member-net + +networks: + member-net: + driver: bridge + +volumes: + redis-data: diff --git a/docs/VPS_DEPLOY_RUNBOOK.md b/docs/VPS_DEPLOY_RUNBOOK.md index 14a4ee9..10a87b1 100644 --- a/docs/VPS_DEPLOY_RUNBOOK.md +++ b/docs/VPS_DEPLOY_RUNBOOK.md @@ -38,6 +38,26 @@ curl http://127.0.0.1:8000/healthz docker logs -f memberapi-backend ``` +### 用 docker compose(建議) +Compose 檔案:[docker-compose.yml](../docker-compose.yml) + +啟動: +```bash +cd /opt/member-platform +docker compose up -d --build +``` + +檢查: +```bash +docker compose ps +docker compose logs -f backend +``` + +停止: +```bash +docker compose down +``` + ## 3) 前端部署(Nginx) ```bash cd /opt/member-platform/frontend