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

我在 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 builder

ENV \

    OUTDIR='/out' \

    GO111MODULE='on'    


WORKDIR /app

COPY go.mod /app/

COPY go.sum /app/

RUN go mod download

COPY . /app/

RUN CGO_ENABLED=0 GOBIN=${OUTDIR}/usr/bin/ go install .


FROM scratch

COPY --from=builder /out/ /

ENTRYPOINT ["/usr/bin/app-cli"]

My .gitlab-ci.yml


stages:

  - validation


validation:

  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


守着星空守着你
浏览 233回答 3
3回答

杨__羊羊

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"]

慕码人2483693

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

拉风的咖菲猫

除了覆盖已经指出的入口点之外,问题在于您正在调用需要shell的脚本。尝试在脚本部分 调用应用程序。ls/usr/bin/app-cli
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go