31 lines
1.6 KiB
YAML
31 lines
1.6 KiB
YAML
# 生产:宿主机 12364 -> 容器内 5002;容器名 infogenie-backend-go
|
||
#
|
||
# 推荐(不在服务器编译 Go):先在 Windows 运行 build-linux-amd64.bat 生成 dist\server,
|
||
# 再执行: docker compose up -d --build
|
||
# 镜像使用 Dockerfile.prebuilt,仅打包 Alpine + 二进制。
|
||
#
|
||
# 若要在 Docker 内多阶段编译,改用: docker compose -f docker-compose.yml -f docker-compose.sourcebuild.yml up -d --build
|
||
#
|
||
# ========== 前端连不上 Docker 后端时排查 ==========
|
||
# 1) 容器是否起来: docker ps 看 infogenie-backend-go;宿主机 curl http://127.0.0.1:12364/api/health
|
||
# 2) .env.production 里 DB_HOST/REDIS_ADDR:容器内 127.0.0.1 是容器自己,不是宿主机。
|
||
# MySQL/Redis 在宿主机时:Linux 常用 172.17.0.1 或宿主机内网 IP;Docker Desktop 可用 host.docker.internal
|
||
# 3) REDIS_ENABLED=true 时 Redis 必须可达,否则进程启动失败(main 里 cache.Init 会报错退出)
|
||
# 4) 前端生产构建的 VITE_API_URL 必须是浏览器能访问的地址(HTTPS 域名反代到 12364,或公网 IP+端口),
|
||
# 勿指向仅内网可达的 IP;与 env.js 里生产默认 https://infogenie.api.shumengya.top 一致时需 DNS/反代已配置
|
||
# 5) 云服务器安全组/防火墙放行 12364(若直连端口)
|
||
services:
|
||
infogenie-backend-go:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile.prebuilt
|
||
image: infogenie-backend-go:latest
|
||
container_name: infogenie-backend-go
|
||
ports:
|
||
- "12364:5002"
|
||
env_file:
|
||
- .env.production
|
||
environment:
|
||
APP_ENV: production
|
||
restart: unless-stopped
|