Я пытался создать базовый 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