You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跟随《Securing DevOps》实操:CircleCI集成与Docker构建报错求助

《Securing DevOps》第二章实操问题排查

一、CircleCI无运行反馈问题

  • 未提前关联CircleCI账号:GitHub仓库需要先在CircleCI平台完成账号关联与流水线配置,否则webhook无法触发流水线运行。你后续创建账号并配置流水线的操作是正确的,若要触发之前的提交构建,可在CircleCI控制台手动选择对应分支执行构建。
  • 空提交无触发:你执行git add .circleci/config.yml和commit时提示工作目录干净,说明该配置文件未做任何修改,空提交不会触发CircleCI流水线。需确保配置文件存在有效变更,或首次启用时确认CircleCI已识别到该配置文件。

二、Docker构建错误问题

1. Docker daemon未运行错误

这是环境基础问题,Mac系统需确保Docker Desktop已启动,Linux系统需确认Docker服务处于运行状态,可通过执行docker ps命令验证Docker daemon是否正常响应。

2. 找不到/bin/invoicer错误

你的Dockerfile存在两处逻辑问题:

  • COPY bin/invoicer /app/invoicer指令无效:你未在本地编译Go程序,所以本地不存在bin/invoicer文件,COPY步骤必然失败。
  • go build指令缺少源码基础:Dockerfile中未将Go源码复制到容器内,直接执行go build github.com/Securing-DevOps/invoicer-chapter2会因找不到源码包失败。

无需本地安装Go,可通过修改Dockerfile在容器内完成编译:

FROM golang:latest
RUN addgroup --gid 10001 app
RUN adduser --gid 10001 --uid 10001 \
    --home /app --shell /sbin/nologin \
    --disabled-password app

# 切换到容器内的GOPATH源码目录,复制本地源码
WORKDIR /go/src/github.com/Securing-DevOps/invoicer-chapter2
COPY . .

# 编译生成静态链接的二进制文件
RUN go build --ldflags '-extldflags "-static"' -o invoicer

# 准备应用运行环境
RUN mkdir /app/statics/
COPY statics /app/statics/
COPY invoicer /app/invoicer

USER app
EXPOSE 8080
WORKDIR /app
ENTRYPOINT /app/invoicer

修改后,所有编译步骤在容器内完成,不会再出现文件找不到的问题。

内容的提问来源于stack exchange,提问作者user3523406

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:53:17