【问题标题】:Build failed while appending line in source of docker container在 docker 容器的源中附加行时构建失败
【发布时间】:2017-05-07 03:59:11
【问题描述】:

我正在处理 https://github.com/audip/rpi-haproxy 并在构建 docker 容器时收到此错误消息:

Build failed: The command '/bin/sh -c echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list' returned a non-zero code: 1

这可以在https://hub.docker.com/r/audip/rpi-haproxy/builds/brxdkayq3g45jjhppndcwnb/查看

我试图找到答案,但问题似乎出在 Dockerfile 的第 4 行。需要帮助来解决此构建失败的问题。

# Pull base image.
FROM resin/rpi-raspbian:latest

# Enable Jessie backports
RUN echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list

# Setup GPG keys
RUN gpg --keyserver pgpkeys.mit.edu --recv-key  8B48AD6246925553 \     
    && gpg -a --export 8B48AD6246925553 | sudo apt-key add - \
    && gpg --keyserver pgpkeys.mit.edu --recv-key  7638D0442B90D010 \  
    && gpg -a --export 7638D0442B90D010 | sudo apt-key add -

# Install HAProxy      
RUN apt-get update \
    && apt-get install haproxy -t jessie-backports

# Define working directory.
WORKDIR /usr/local/etc/haproxy/

# Copy config file to container
COPY haproxy.cfg .
COPY start.bash .

# Define mountable directories.
VOLUME ["/haproxy-override"]

# Run loadbalancer
# CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]

# Define default command.
CMD ["bash", "start.bash"]

# Expose ports.
EXPOSE 80
EXPOSE 443

【问题讨论】:

  • 要调试,只需执行docker run -it resin/rpi-raspbian:latest /bin/bashdocker run -it resin/rpi-raspbian:latest /bin/sh 然后启动echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list 并查看您得到的更准确的错误消息,如果错误较晚,请继续执行下一个命令跨度>
  • 顺便问一下,docker run -it resin/rpi-raspbian:latest ls /etc/apt/sources.list
  • @user2915097:响应第一条评论,它构建成功并且在Docker for Mac上没有吐出错误,当Docker Hub尝试自动构建时出现问题,失败:hub.docker.com/r/audip/rpi-haproxy/builds/…跨度>
  • @user2915097:响应第二条评论,这是控制台的消息:/etc/apt/sources.list,然后是/usr/bin/entry.sh: line 93: fg: job has terminated
  • 所以发布/usr/bin/entry.sh的第93行

标签: shell docker debian dockerfile haproxy


【解决方案1】:

从您的日志中:

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

它抱怨二进制格式无效。您使用的映像是 Raspberry Pi 映像,它基于 ARM 芯片组。您的构建在 AMD64 芯片组上运行。这些不是二进制兼容的。我相信这张图片是为建立在 Pi 本身上而设计的。

【讨论】:

  • 我会尝试在 Raspberry Pi 本身上构建它,如果是这样,我会接受这个答案是最好的答案。
  • 在 RPi 上构建确实提供了一组新的错误,表明它特定于我正在开发的芯片组。
猜你喜欢
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 2016-04-27
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
相关资源
最近更新 更多