描述/复制步骤
我正试图在我的Raspberry Pi 1上的docker容器中运行opc-ua服务器examle"server_ctt"(从这里使用open62541库(,但是我没能创建docker镜像。
我按照这里的说明,一开始克隆了repo。之后,我尝试通过在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
关于如何解决这个问题有什么建议吗?
背景信息
我通过PuTTy连接到我的树莓派。但我想这没什么区别。此外,在Windows上构建映像并运行server_ctt示例完全可以。
编辑:
由于在我的windows电脑上构建/运行open62541映像,我试图将其保存并复制到我的树莓派1中。我的树莓派上的docker加载命令运行得很好,运行图像输出如下错误:
standard_init_linux.go:211: exec user process caused "exec format error"
这可能是由于不同的体系结构(因为树莓派1使用ARM体系结构(。我该如何解决这个问题?
要回答更新后的问题:您可以使用实验性的docker buildx
命令为Raspberry Pi构建。
这将创建一些虚拟化的构建器,这些构建器将为所需的体系结构构建容器。因此,构建过程可能需要更长的时间(我认为10倍对我的项目来说是现实的(。
对于您的案例,最重要的命令是类似的命令
docker buildx build --platform linux/arm/v7 .