2017-05-08 29 views
0

出於某種原因,我一直未能完成docker build而沒有停止進程並且沒有提供任何錯誤。我一直在搜索,沒有人似乎有同樣的問題。爲什麼在Dockerfile構建期間apt-get exit沒有錯誤?

我使用的Dockerfile配置的第一(和凸)部分:

FROM java:8-jre 

ENV DEBIAN_FRONTEND noninteractive 

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

我使用執行構建命令(build.cmd):

@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"^
    %* 

運行它的結果:

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中運行相同的一組命令,通過運行docker run -it --rm java: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,現在一切都運行良好。一個可能的選擇是,這個問題在上次更新(我今天安裝的)中悄然修復。我沒有時間回覆和重新測試,所以這是它,直到我再次遇到問題,或其他人得到同樣的東西。

回答

0

意外的EOF(文件結束)。看起來你在RUN命令結束時忘記了「\」。

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

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

這只是導致我的編譯失敗,因爲它直接附加我的下一個命令的那一個,與結束了'運行apt-get更新運行apt-get安裝... etc' – tzrlk

0

@Tzrlk你後面的企業代理工作?嘗試直接在終端中運行此命令,然後使用docker build命令並查看。

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

是啊,這是一個巨大的疼痛,但我確實已經在兩個窗口中獲得了所有的代理設置,並且shell正確設置了。連接沒有問題,使用apt-get完成RUN命令只會導致難以退出。 – tzrlk

相關問題