为什么apt在Dockerfile构建过程中没有错误地退出?

为什么apt在Dockerfile构建过程中没有错误地退出?,docker,dockerfile,apt-get,Docker,Dockerfile,Apt Get,由于某些原因,我无法在进程停止且未提供任何错误的情况下完成docker构建。我在谷歌上搜索过,似乎没有人有同样的问题 我使用的Dockerfile配置的第一部分(也是最突出的部分): FROM java:8-jre ENV DEBIAN_FRONTEND noninteractive # Install needed packages RUN apt-get update RUN apt-get install -y \ cron 我用来执行构建的命令(build.cmd): 运行

由于某些原因,我无法在进程停止且未提供任何错误的情况下完成
docker构建。我在谷歌上搜索过,似乎没有人有同样的问题

我使用的Dockerfile配置的第一部分(也是最突出的部分):

FROM java:8-jre

ENV DEBIAN_FRONTEND noninteractive

# Install needed packages
RUN apt-get update
RUN apt-get install -y \
    cron
我用来执行构建的命令(build.cmd):

运行它的结果是:

Sending build context to Docker daemon  133.9MB
Step 1/7 : FROM java:8-jre
 ---> e44d62cf8862
Step 2/7 : ENV DEBIAN_FRONTEND noninteractive
 ---> Using cache
 ---> f30e6ab20920
Step 3/7 : RUN apt-get update
 ---> Running in 677bd445e48c
Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB]
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [508 kB]
Ign http://deb.debian.org jessie InRelease
Get:3 http://deb.debian.org jessie-updates InRelease [145 kB]
Get:4 http://deb.debian.org jessie-backports InRelease [166 kB]
Get:5 http://deb.debian.org jessie Release.gpg [2373 B]
Get:6 http://deb.debian.org jessie Release [148 kB]
Get:7 http://deb.debian.org jessie-updates/main amd64 Packages [17.6 kB]
Get:8 http://deb.debian.org jessie-backports/main amd64 Packages [1150 kB]
Get:9 http://deb.debian.org jessie/main amd64 Packages [9065 kB]
Fetched 11.3 MB in 6s (1829 kB/s)
Reading package lists...
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
这里有一个大问题:在一个shell中运行相同的命令集,这个shell是通过运行
dockerrun-it--rmjava:8-jre/bin/bash
实现的

另一个有趣的地方是:将两个命令连接在一起(使用&&)将退出延迟到两个执行的结束。事实上,实际上不会产生任何错误,因此在末尾附加额外的命令就可以了(例如,
apt get update&&apt get install-y cron&&echo“Done!”

如果您能提供任何帮助,甚至能确定在何处可以报告该问题,我们将不胜感激

更新:由于这些事情的原因,我想在发布此消息后立即查看服务日志。找到了以下可能为我指明正确方向的小道消息:

[13:50:31.818][ApiProxy       ][Info   ] error copying response body from Docker:  unexpected EOF
[13:50:31.818][ApiProxy       ][Info   ] error closing response body from Docker:  unexpected EOF
然而,仍然不知道这意味着什么。可能只是另一种症状而不是原因

更新:只需再次运行构建以仔细检查提交的响应,并且没有更改我的Dockerfile,现在一切都运行得很好。一个可能的选择是,该问题在上次更新(我今天安装的)中被悄悄修复。我真的没有时间恢复和重新测试,所以这就是它,直到我再次遇到问题,或者其他人得到同样的东西。

意外的EOF(文件结束)。您似乎忘记了RUN命令末尾的“\”

RUN apt-get update && apt-get install -y cron && echo "Done!" \


@Tzrlk你在为公司代理工作吗?首先尝试直接在终端中运行此命令,然后使用docker build命令,请参见

export http_proxy=http://your proxy here:port here
export https_proxy=http://your proxy here:port here

这只会导致我的构建失败,因为它将我的下一个命令直接附加到该命令,结果是
RUN apt get update RUN apt get install…etc
是的,这是一个巨大的痛苦,但我肯定已经在windows和shell中正确设置了所有代理设置。连接没有问题,完成一个包含apt get的RUN命令只会导致硬退出。
RUN apt-get update && \
    apt-get install -y cron && \
    echo "Done!" \
export http_proxy=http://your proxy here:port here
export https_proxy=http://your proxy here:port here