gpt4 book ai didi

Docker 错误 standard_init_linux.go :185: exec user process caused "exec format error with Qnap TS131P

转载 作者:IT老高 更新时间:2023-10-28 21:22:23 39 4
gpt4 key购买 nike

我的 Docker 文件是 https://hub.docker.com/r/songkong/songkong/~/dockerfile/ 的 song/songkong

FROM openjdk:8-jre-alpine

RUN apk --no-cache add \
ca-certificates \
curl \
fontconfig \
msttcorefonts-installer \
tini \
&& update-ms-fonts \
&& fc-cache -f

RUN mkdir -p /opt \
&& curl http://www.jthink.net/songkong/downloads/current/songkong-linux-headless-novm.tgz?val=77 | tar -C /opt -xzf - \
&& find /opt/songkong -perm /u+x -type f -print0 | xargs -0 chmod a+x

RUN addgroup -S songkong \
&& adduser -S -G songkong songkong

USER songkong:songkong

EXPOSE 4567

ENTRYPOINT ["/sbin/tini"]

# Config, License, Logs, Reports and Internal Database
VOLUME /songkong

# Music folder should be mounted here
VOLUME /music

WORKDIR /opt/songkong

CMD /opt/songkong/songkongremote8.sh

在 Synology DS218+ Disk Station (Intel) 上运行良好

我购买了 Qnap TS-131P 来测试 Qnap,同时也确认它可以与 Arm 处理器一起使用,因为 Qnap 支持 Docker on arm 处理器,而 Synology 不支持。

当我尝试从图像启动 Container 时出现错误

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

this link 让我认为问题出在 arm 处理器上。

但我很困惑,因为我认为 Docker 的全部意义在于隐藏这些系统特定的细节,如何(我可以)修复我的 Docker 文件以便它在 Qnap 上运行。

最佳答案

问题确实在于 Docker 镜像文件是特定于体系结构的(至少是默认的)。所以基于 Intel 构建的 Docker 文件只能在 Intel 上运行,而为 Arm32 构建的 Docker 文件只能在 Arm32 上运行。

似乎有一些方法可以在英特尔设备上构建 Arm 版本,但仍然需要分发两个单独的镜像。如果您有物理 Arm 设备,直接在 Arm 设备上构建 Arm 镜像会容易得多。

您还需要确保您的基础镜像支持您的架构,但官方镜像现在已经构建为多架构镜像,所以这通常不是问题。

关于Docker 错误 standard_init_linux.go :185: exec user process caused "exec format error with Qnap TS131P,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767983/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com