首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在构建Dockerfile时,apt-获得退出时没有错误?

为什么在构建Dockerfile时,apt-获得退出时没有错误?
EN

Stack Overflow用户
提问于 2017-05-08 01:47:59
回答 2查看 546关注 0票数 0

由于某些原因,如果没有进程停止,并且没有提供错误,我就无法完成docker build。我在谷歌上搜索过,似乎没有人有同样的问题。

我使用的Dockerfile配置的第一部分(也是显著的)部分:

代码语言:javascript
复制
FROM java:8-jre

ENV DEBIAN_FRONTEND noninteractive

# Install needed packages
RUN apt-get update
RUN apt-get install -y \
    cron

用于执行构建(build.cmd)的命令:

代码语言:javascript
复制
@ECHO OFF

docker --debug --log-level debug build . ^
    --build-arg http_proxy=%http_proxy% ^
    --build-arg https_proxy=%https_proxy% ^
    --build-arg no_proxy=%no_proxy% ^
    --tag "bravura/jfrog-mission-control:latest" ^
    %*

运行它的结果:

代码语言:javascript
复制
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.

这里有一个很大的问题:在运行docker run -it --rm java:8-jre /bin/bash所带来的shell中运行相同的命令集非常好。

另一个有趣的地方是:将这两个命令连接在一起(使用&&)将退出推迟到两次执行的结束。实际上,并没有产生任何错误,所以将附加的命令附加到末尾是很好的(例如apt-get update && apt-get install -y cron && echo "Done!")。

如果能提供任何帮助,甚至确定在哪里可以报告这一问题,我们将不胜感激。

更新:是使用这些东西的方式,我想在发布这篇文章后立即查看服务日志。发现了以下可能指向正确方向的小道消息:

代码语言:javascript
复制
[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进行任何更改,现在一切都运行得很好。一个可能的选择是,在上一次更新(我今天安装的)中,这个问题已经悄然解决了。我真的没有时间恢复和重新测试,所以这就是它,直到我再次遇到问题,或其他人得到同样的东西。

EN

回答 2

Stack Overflow用户

发布于 2017-05-08 06:42:35

意料之外的EOF (文件结束)在运行命令的末尾,您似乎忘记了"\“。

代码语言:javascript
复制
RUN apt-get update && apt-get install -y cron && echo "Done!" \

代码语言:javascript
复制
RUN apt-get update && \
    apt-get install -y cron && \
    echo "Done!" \
票数 0
EN

Stack Overflow用户

发布于 2017-05-08 08:18:34

@Tzrlk你在公司代理背后工作吗?尝试先在终端中直接运行此命令,然后使用docker命令并查看。

代码语言:javascript
复制
export http_proxy=http://your proxy here:port here
export https_proxy=http://your proxy here:port here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43838602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档