gitlab CI/CD /usr/bin/sh: /usr/bin/sh: 无法执行二进制文件错误:作业失败:退出代码 126

问题描述 投票:0回答:1

我有一个工作管道。我通过安装 STM32CUBEIDE 并将其作为新映像提交来修改容器。相同的 .yaml 文件,只是图像不同。

图片

gul-doxygen
- 管道工作正常。

我根据该图像创建了新图像:

FROM gul-doxygen as builder

ENV STM32CUBEIDE_VERSION=1.13.1
ENV DEBIAN_FRONTEND=noninteractive
ENV LICENSE_ALREADY_ACCEPTED=1
ENV TZ=Etc/UTC
ENV PATH="${PATH}:/opt/st/stm32cubeide_${STM32CUBEIDE_VERSION}"
COPY *.sh /tmp/stm32cubeide-installer.sh

ENTRYPOINT [""]

后来我在容器 shell 中运行这个并安装 stm32cubeide

chmod +x /tmp/stm32cubeide-installer.sh
/tmp/stm32cubeide-installer.sh 

退出容器并提交。

当我在 .yaml 文件中使用此图像时,我得到

Running with gitlab-runner 16.2.0 (782e15da)
  on gul-doxygen1 a-9FmuFr, system ID: s_802849a7821f
Preparing the "docker" executor 00:04
Using Docker executor with image gul-stm32-doxy:latest ...
Using locally found image version due to "if-not-present" pull policy
Using docker image sha256:36dede89437aa20d08c19246927e950973038e227c4ed6455e92c3ab26eeb6fa for gul-stm32-doxy:latest ...
Preparing environment 00:02
Running on runner-a-9fmufr-project-13-concurrent-0 via srvlnx01...
Getting source from Git repository 00:04
Fetching changes...
Reinitialized existing Git repository in /builds/Firmware/STM/.git/
Checking out 88d96f30 as detached HEAD (ref is master)...
Removing public/
Skipping Git submodules setup
Executing "step_script" stage of the job script 00:02
Using docker image sha256:36dede89437aa20d08c19246927e950973038e227c4ed6455e92c3ab26eeb6fa for gul-stm32-doxy:latest ...
/usr/bin/sh: /usr/bin/sh: cannot execute binary file
ERROR: Job failed: exit code 126

出了什么问题?

docker gitlab-ci doxygen gitlab-ci-runner stm32cubeide
1个回答
0
投票

由于某种原因,docker commit 还不够。我必须编写两行 dockerfile 才能使用提交的映像作为基础映像。构建后一切正常=

© www.soinside.com 2019 - 2024. All rights reserved.