Сборка Dockerfile выполняется с ненулевым кодом 139 - PullRequest
1 голос
/ 06 марта 2020

Описание / шаги по воспроизведению

Я пытаюсь запустить серверный пример op c -ua "server_ctt" (используя библиотеку open62541 из здесь ) в контейнере docker на моем Raspberry Pi 1, но мне не удается создать образ docker.

Я следовал инструкциям на здесь и сначала клонировал репо. После этого я пытаюсь создать образ, выполнив следующую команду в каталоге open62541: docker build -f docker/Dockerfile .

Это вывод, который я получаю в терминале:

pi@raspberrypi:~/ma/dockerVersion/open62541 $ docker build -f docker/Dockerfile                         .
Sending build context to Docker daemon  38.69MB
Step 1/18 : FROM alpine:3.10
3.10: Pulling from library/alpine
4e972d957a60: Pull complete
Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f
Status: Downloaded newer image for alpine:3.10
 ---> cf7ea1e5a972
Step 2/18 : RUN apk add --no-cache cmake gcc git g++ musl-dev mbedtls-dev python py-pip make && rm -rf /var/cache/apk/*
 ---> Running in 82c8b5868509
The command '/bin/sh -c apk add --no-cache cmake gcc git g++ musl-dev mbedtls-dev python py-pip make && rm -rf /var/cache/apk/*' returned a non-zero code: 139

Предварительно я Я установил docker на моем Raspberry Pi, используя вспомогательный сценарий здесь

Есть предложения по решению этой проблемы?

Справочная информация

I Я подключен к моей Raspberry Pi через PuTTy. Но я думаю, что это не имеет значения. Кроме того, создание образа на Windows и запуск примера server_ctt работает совершенно нормально.

EDIT:

Поскольку сборка / запуск образа open62541 работает на моем windows p c , Я попытался сохранить и скопировать его на мой raspberry pi 1. Команда загрузки docker на моем raspberry pi работала просто отлично, запустив вывод изображений после ошибки:

standard_init_linux.go:211: exec user process caused "exec format error"

Это может быть связано с для разных архитектур (поскольку Raspberry Pi 1 использует архитектуру ARM). Как я могу решить это?

1 Ответ

0 голосов
/ 16 марта 2020

Чтобы ответить на обновленный вопрос: Вы можете собрать для своего Raspberry Pi команду экспериментальная docker buildx .

. Это создаст несколько виртуализированных сборщиков, которые будут строить ваш контейнер для желаемого архитектуры. Таким образом, процесс сборки может занять гораздо больше времени (я думаю, что коэффициент 10 является реалистичным c для моих проектов).

Наиболее важной командой для вашего случая будет что-то вроде

docker buildx build --platform linux/arm/v7 .
...