修复docker构建的问题
This commit is contained in:
1 parent
8700321af6
commit
f60b416949
6 files changed
+76
-20
No files matched your search
@@ -102,6 +102,9 @@ chmod 600 .env
|
||||
|
||||
~~~text
|
||||
FIRE_SAFETY_HTTP_ADDR=:8080
|
||||
# Build-time only. Keep the official default unless the target server cannot
|
||||
# reach it; this value is not passed to the running application container.
|
||||
FIRE_SAFETY_BUILD_GOPROXY=https://proxy.golang.org,direct
|
||||
|
||||
FIRE_SAFETY_SUPERAGENT_ENABLED=true
|
||||
FIRE_SAFETY_SUPERAGENT_BASE_URL=https://<superagent-api-host>
|
||||
@@ -154,7 +157,31 @@ FIRE_SAFETY_POSTGIS_EXPECTED_SRID=4326
|
||||
|
||||
## 5. 构建、启动和本机检查
|
||||
|
||||
以下命令在服务器项目目录执行。Compose 构建上下文不把 .env 作为 Dockerfile 构建参数:
|
||||
以下命令在服务器项目目录执行。Compose 构建上下文不复制 `.env`;非 Secret 的 `FIRE_SAFETY_BUILD_GOPROXY` 只会被映射为构建参数,并在运行容器环境中强制清空。
|
||||
|
||||
先检查 Go 模块代理是否从服务器/Docker 所在网络可达:
|
||||
|
||||
~~~bash
|
||||
curl --head --connect-timeout 10 https://proxy.golang.org/
|
||||
~~~
|
||||
|
||||
如果连接官方代理超时,可以测试经运维认可的替代代理。例如 [Goproxy.cn](https://goproxy.cn/) 官方说明支持标准 Go module proxy 协议:
|
||||
|
||||
~~~bash
|
||||
curl --head --connect-timeout 10 https://goproxy.cn/
|
||||
~~~
|
||||
|
||||
只有确认替代代理可达且组织允许使用时,才在服务器 `.env` 中改为:
|
||||
|
||||
~~~text
|
||||
FIRE_SAFETY_BUILD_GOPROXY=https://goproxy.cn,direct
|
||||
~~~
|
||||
|
||||
该值必须是不含用户名、密码或 Token 的代理地址;Docker build argument 不是 Secret 注入机制。若组织代理要求认证,需要另做 BuildKit Secret 设计,不能把凭证嵌进 URL 或 `.env` 中的构建参数。
|
||||
|
||||
主机侧 curl 成功只能初步说明连通性;最终仍以 `docker compose build` 是否能下载并校验模块为准。如果两个地址都超时,应修复 Docker/宿主机的 DNS、HTTPS 出口、透明代理或防火墙,或者使用组织自建的可信 Go module proxy。不要设置 `GOSUMDB=off`、跳过 `go.sum` 校验或反复执行 `docker compose up` 掩盖依赖下载失败。
|
||||
|
||||
代理连通后再构建并启动:
|
||||
|
||||
~~~bash
|
||||
cd /home/firee-safety-ymd
|
||||
@@ -168,6 +195,8 @@ curl --fail http://127.0.0.1:16587/health
|
||||
|
||||
预期结果:容器为 Up(健康状态由 Compose 显示),health 返回 HTTP 200;有限日志不应出现 DSN、密码、Token 或 API Key。docker compose config --quiet 只验证配置,不输出展开后的 Secret。若 Compose 不支持 --quiet,升级 Compose 或使用不会回显结果的等价校验方式。
|
||||
|
||||
若构建在 `RUN go mod download` 处失败,则镜像和容器尚未生成,后续访问宿主机端口会得到 connection refused。先解决模块代理连通性并重新执行 `docker compose build --pull`,成功后才能执行 `up -d`。
|
||||
|
||||
失败时只读取有限日志:
|
||||
|
||||
~~~bash
|
||||
|
||||
Reference in new issue
Block a user