Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 3m47s
问题诊断(本地运行镜像验证): 1. 服务实际已启动在 3000 端口 2. 从宿主机访问健康检查 ✅ 成功 3. 容器内部 wget localhost:3000 ❌ 失败 (Connection refused) 4. 健康检查尝试连接 [::1]:3000 (IPv6),但 Fiber 只监听 IPv4 根本原因: - wget localhost 优先解析为 IPv6 地址 [::1] - Fiber 默认监听 0.0.0.0:3000 (仅 IPv4) - Docker 健康检查失败 → 容器标记 unhealthy → Worker 无法启动 修复内容: 1. Dockerfile.api 健康检查: localhost → 127.0.0.1 (强制 IPv4) 2. docker-compose.prod.yml 健康检查: 同步修改 3. Dockerfile.api: 创建 logs 目录并设置 appuser 权限 4. cmd/api/main.go: OpenAPI 文档路径改为 logs/openapi.yaml
55 lines
1.2 KiB
YAML
55 lines
1.2 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
api:
|
|
image: registry.boss160.cn/junhong/cmp-fiber-api:latest
|
|
container_name: junhong-cmp-api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- DB_HOST=cxd.whcxd.cn
|
|
- DB_PORT=16159
|
|
- DB_USER=erp_pgsql
|
|
- DB_PASSWORD=erp_2025
|
|
- DB_NAME=junhong_cmp_test
|
|
- DB_SSLMODE=disable
|
|
volumes:
|
|
- ./configs:/app/configs:ro
|
|
- ./logs:/app/logs
|
|
networks:
|
|
- junhong-network
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/health"]
|
|
interval: 30s
|
|
timeout: 3s
|
|
retries: 3
|
|
start_period: 10s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
worker:
|
|
image: registry.boss160.cn/junhong/cmp-fiber-worker:latest
|
|
container_name: junhong-cmp-worker
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./configs:/app/configs:ro
|
|
- ./logs:/app/logs
|
|
networks:
|
|
- junhong-network
|
|
depends_on:
|
|
api:
|
|
condition: service_healthy
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
networks:
|
|
junhong-network:
|
|
driver: bridge
|