为了账号安全,请及时绑定邮箱和手机立即绑定

Gitlab 运行器错误执行:“sh”:在$PATH中找不到可执行文件

Gitlab 运行器错误执行:“sh”:在$PATH中找不到可执行文件

Go
守着星空守着你 2022-09-19 17:17:13
我在 Gitlab CI 上运行容器时遇到此错误ERROR: Job failed (system failure): Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "sh": executable file not found in $PATH: unknown (exec.go:57:0s)我。泊坞文件FROM golang:1.16-alpine AS builderENV \    OUTDIR='/out' \    GO111MODULE='on'    WORKDIR /appCOPY go.mod /app/COPY go.sum /app/RUN go mod downloadCOPY . /app/RUN CGO_ENABLED=0 GOBIN=${OUTDIR}/usr/bin/ go install .FROM scratchCOPY --from=builder /out/ /ENTRYPOINT ["/usr/bin/app-cli"]My .gitlab-ci.ymlstages:  - validationvalidation:  image:    name: gitlab.mycompany.net:4567/myteam/app-cli:latest    entrypoint: [""]  stage: validation  rules:    - if: '$CI_MERGE_REQUEST_IID'  script:    - ls此错误是否与我的泊坞站文件或 gitlab ci 有关?我可以在本地运行这个,但不能在gitlab运行者docker run --rm -ti gitlab.mycompany.net:4567/myteam/app-cli:latest
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

Giving an empty entrypoint和不是一回事。not giving the entrypoint at all

在命令中,您没有给出任何入口点。因此,docker 映像使用默认入口点 运行。docker runENTRYPOINT ["/usr/bin/app-cli"]

在 中,您将用空的入口点覆盖默认入口点,其中 .gitlab-cientrypoint: [""]executable file not found

试试这个:

validation:
  image:
    name: gitlab.mycompany.net:4567/myteam/app-cli:latest
    entrypoint: ["/usr/bin/app-cli"]


查看完整回答
反对 回复 2022-09-19
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

找到答案

我只需要将 更改为 ,以便现在我可以使用FROM scratchFROM alpine:latestsh


查看完整回答
反对 回复 2022-09-19
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

除了覆盖已经指出的入口点之外,问题在于您正在调用需要shell的脚本。尝试在脚本部分 调用应用程序。ls/usr/bin/app-cli



查看完整回答
反对 回复 2022-09-19
  • 3 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信