Сборка Jenkins Dockerfile: [91mstandard_init_ linux. go: 211: exe c пользовательский процесс вызвал «ошибку формата exe c» - PullRequest
0 голосов
/ 21 февраля 2020

Я пытался создать базовый c ci / cd конвейер для проекта python на Raspberry Pi 3. Я использую Jenkins для создания Docker образа и pu sh его на моем Dockerhub репо, но я получаю сообщение об ошибке во время сборки Jenkins:

[91mstandard_init_linux.go:211: exec user process caused "exec format error"

Мой Dockerfile выглядит следующим образом

FROM arm32v7/python:3.7-slim-buster

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./main.py" ]

Проблема возникает при RUN Команда pip install , поэтому я подумал, что, возможно, рабочий Дженкинса не может получить доступ к файлу. Поэтому я добавил дополнительную команду для изменения разрешений:

FROM arm32v7/python:3.7-slim-buster

WORKDIR /usr/src/app
RUN chmod u=rwx,g=rx,o=rx requirements.txt
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./main.py" ]

Сборка Jenkins завершается неудачно с той же ошибкой в ​​команде chmod , и, похоже, она не может запустить какую-либо / сценариев bin вообще, так как все команды / bin / sh терпят неудачу. Я подумал, может быть, это потому, что Дженкинс не может применить определенные команды, потому что я указал сборку в armv732? В настоящее время я запускаю Jenkins на локальном хосте моей машины под управлением Ubuntu. Я очень плохо знаком с Дженкинсом и Docker, поэтому я не знаком со спецификой работы систем. Любая помощь будет принята с благодарностью.

Журналы Jenkins из сборки:


Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/jenkins-test-docker
using credential 719f731b-6c8d-4712-aa71-d9c221c23a9c
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/CoogyEoin/ev_mqtt_monitor.git # timeout=10
Fetching upstream changes from https://github.com/CoogyEoin/ev_mqtt_monitor.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials 
 > git fetch --tags --progress -- https://github.com/CoogyEoin/ev_mqtt_monitor.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/testBranch^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/testBranch^{commit} # timeout=10
Checking out Revision b4d0ed413636fd076e5fae1518062f0ae479fea7 (refs/remotes/origin/testBranch)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f b4d0ed413636fd076e5fae1518062f0ae479fea7 # timeout=10
Commit message: "Seeing if chmod works"
 > git rev-list --no-walk 7be754300f5003e54139b34a8f3dff7eecc4f5bf # timeout=10
[jenkins-test-docker] $ docker build -t coogy/ev_mqtt_monitor_test --pull=true /var/lib/jenkins/workspace/jenkins-test-docker
Sending build context to Docker daemon  216.1kB

Step 1/7 : FROM arm32v7/python:3.7-slim-buster
3.7-slim-buster: Pulling from arm32v7/python
Digest: sha256:0b115cbcf0c0a8164b2e486458af66418c78899a375750b9469c609c82c2cf36
Status: Image is up to date for arm32v7/python:3.7-slim-buster
 ---> 9a0c8b2b71f6
Step 2/7 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 6f702979c25d
Step 3/7 : RUN chmod u=rwx,g=rx,o=rx requirements.txt
 ---> Running in c6a005a76880
[91mstandard_init_linux.go:211: exec user process caused "exec format error"
[0mThe command '/bin/sh -c chmod u=rwx,g=rx,o=rx requirements.txt' returned a non-zero code: 1
Build step 'Docker Build and Publish' marked build as failure
Finished: FAILURE

1 Ответ

0 голосов
/ 21 февраля 2020

Ошибка, которую вы получаете, указывает, что двоичный файл создан для архитектуры ЦП, отличной от той, которую вы используете в качестве подчиненного устройства сборки в Jenkins. Большинство команд в Dockerfile выполняются внутри контейнера на основе образа, указанного в Dockerfile, поэтому архитектуры должны совпадать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...