Dockerfile компилируется на локальном компьютере, но не работает в концентраторе докеров для автоматической сборки

Я пытаюсь создать образ докера для автоматической сборки в Docker Hub, связав свой репозиторий github, который содержит файл Dockerfile. Этот образ предназначен для Raspberry Pi 3 (его можно увидеть в Dockerfile). Хотя файл Dockerfile отлично работает в Raspberry Pi, он выдает ошибку на машине x86_64 GNU / Linux, а также в концентраторе Docker, он не компилируется. Вот журнал из Docker-хаба. Последняя ошибка такая же в docker hub и машине x86_64 GNU / Linux.

Building in Docker Cloud's infrastructure...
Cloning into '.'...
KernelVersion: 4.4.0-79-generic
Arch: amd64
BuildTime: 2017-03-28T19:26:53.326478373+00:00
ApiVersion: 1.27
Version: 17.03.1-ee-2
MinAPIVersion: 1.12
GitCommit: ad495cb
Os: linux
GoVersion: go1.7.5
Starting build of index.docker.io/swapnil18/docker-swarm-arm-socat:latest...
Step 1/11 : FROM resin/raspberrypi3-alpine

 ---> ca84ecc9fee4

Step 2/11 : MAINTAINER Swapnil Das <[email protected]>

 ---> Running in 2a99be7f728e

 ---> e4c7fdd1bc5b

Removing intermediate container 2a99be7f728e

Step 3/11 : ARG "version=0.1.0-dev"

 ---> Running in 1019fe4333d4

 ---> d50c71235386

Removing intermediate container 1019fe4333d4

Step 4/11 : ARG "build_date=5/7/17"

 ---> Running in cbf271f27274

 ---> c9af4b356b3c

Removing intermediate container cbf271f27274

Step 5/11 : ARG "commit_hash=unknown"

 ---> Running in 1778288bf297

 ---> 35d52f36b527

Removing intermediate container 1778288bf297

Step 6/11 : ARG "vcs_url=unknown"

 ---> Running in db86bc110c3d

 ---> 9062830e7754

Removing intermediate container db86bc110c3d

Step 7/11 : ARG "vcs_branch=unknown"

 ---> Running in 919c08a0f584

 ---> 9532842acc1b

Removing intermediate container 919c08a0f584

Step 8/11 : LABEL org.label-schema.vendor "Personal" org.label-schema.name "Socat" org.label-schema.description "Exposes to a defined OUTPUT PORT the INPUT from a TCP endpoint." org.label-schema.usage "/src/README.md" org.label-schema.url "https://github.com/swapnil96/docker-swarm-arm-socat/blob/master/README.md" org.label-schema.vcs-url $vcs_url org.label-schema.vcs-branch $vcs_branch org.label-schema.vcs-ref $commit_hash org.label-schema.version $version org.label-schema.schema-version "1.0" org.label-schema.docker.cmd.devel "" org.label-schema.docker.params "IN=Input,OUT=Output" org.label-schema.build-date $build_date

 ---> Running in 641e40ae7219

 ---> 9c5d5da14397

Removing intermediate container 641e40ae7219

Step 9/11 : ENV "IN 172.18.0.1:4999" "OUT 4999"

 ---> Running in 866b338a1588

 ---> 3c046f12eb1e

Removing intermediate container 866b338a1588

Step 10/11 : RUN apk add --no-cache socat

 ---> Running in 86d0de61864f

[91mstandard_init_linux.go:178: exec user process caused "exec format error"
[0m
Removing intermediate container 86d0de61864f

The command '/bin/sh -c apk add --no-cache socat' returned a non-zero code: 1

Как видно из последнего, это не удается The command '/bin/sh -c apk add --no-cache socat' returned a non-zero code: 1. Есть ли у Dockerfile проблемы с архитектурой? или есть проблема с базовым изображением, которое является смолой / альпийским. Я создал другие Dockerfiles для Raspberry Pi, и все они скомпилированы нормально.

Для рабочих целей я просто запихну образ, встроенный в Raspberry Pi. Но иметь автоматизированный репозиторий сборки намного лучше. Так что, пожалуйста, поправьте меня, если я совершаю очевидную ошибку.

Вот ссылка на другие мои сборки в Docker Hub. ссылка < / а>.

PS: Я пробовал другие варианты, упомянутые в stackoverflow. Я попытался опубликовать ссылки на другие вопросы, но из-за менее 10 репутации мне было разрешено разместить только 2 ссылки.


person Swapnil.Das    schedule 05.07.2017    source источник
comment
вау потратил целый день на эту, ту же проблему, мой базовый образ - смола / rpi-raspbian: мы с Джесси получаем ошибку при выполнении команды chmod, вы когда-нибудь находили решение?   -  person phil_lgr    schedule 31.07.2017
comment
Мне помогли приведенные здесь примеры: github.com/alexellis/docker-arm   -  person phil_lgr    schedule 31.07.2017
comment
Не решены до сих пор. Сейчас использую теги для разных сборок. Автоматическая сборка перемещена в тег ошибки, и я добавил изображения, созданные в Raspberry Pi, в качестве последнего тега.   -  person Swapnil.Das    schedule 02.08.2017


Ответы (1)


Это связано с тем, что Raspberry Pi работает на руке, а докер-концентратор не поддерживает руку только на x86, если вы это делаете. Если вы хотите создать образ докера на концентраторе докеров, вам нужно будет внести изменения в образ докера. Я делал это раньше, но он довольно старый, но взгляните на работу смола io или мои собственные настройки, основанные на этом, здесь. Этот метод имитирует архитектуру arm с qemu, позволяя образу запускаться изначально на устройствах arm, таких как Raspberry Pi, сохраняя при этом возможность компилирования с помощью qemu на платформе x86, например docker hub.

person Clive Makamara    schedule 04.09.2017