2017-04-12 32 views
0

我是新鮮的新泊塢窗的用戶。我花了很多時間上的錯誤,Dockerfile是非常短的和容易的,但我不能夠解決這個問題。Simpliest Dockerfile以往解壓:文件未找到

我試圖下載一個tar文件,並解除封存

這裏是我的Dockerfile(每次嘗試是不是在Dockerfile的同時,我把它們放在一起進行簡單起見)

FROM ubuntu:latest 

# 1st try 
ADD https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz /tmp/ 
RUN ls -lah /tmp/glib-2.52.1.tar.xz 
ADD /tmp/glib-2.52.1.tar.xz /tmp 

# 2nd try 
ADD https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz /tmp/ 
RUN ls -lah /tmp/glib-2.52.1.tar.xz 
RUN tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz 

# 3rd try 
WORKDIR /tmp/ 
RUN wget https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz 
RUN ls -lah glib-2.52.1.tar.xz 
RUN tar -xf glib-2.52.1.tar.xz 

# 4th try 
RUN wget https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz -O /tmp/glib-2.52.1.tar.xz 
RUN ls -lah /tmp/glib-2.52.1.tar.xz 
ADD /tmp/glib-2.52.1.tar.xz /tmp 

# 5th try 
RUN wget https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz -O /tmp/glib-2.52.1.tar.xz 
RUN ls -lah /tmp/glib-2.52.1.tar.xz 
RUN tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz 

我想盡一切可能的事情,使這個文件beign下載並解除封存。

僅在最後一步命令(取消歸檔,步驟4)發生的錯誤。

我基本上是試圖在我的電腦上5日嘗試,它的工作原理:

$> wget https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz -O /tmp/glib-2.52.1.tar.xz 
$> tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz 
$> ls /tmp/glib* 
glib-2.52.1 glib-2.52.1.tar.xz 

這裏是當我用焦油輸出:

$> sudo docker build -t gtk --no-cache . 
Sending build context to Docker daemon 3.584kB 
Step 1/5 : FROM ubuntu:latest 
---> 0ef2e08ed3fa 
Step 2/5 : ADD https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz /tmp/ 
Downloading [==================================================>] 7.676MB/7.676MB 
---> caa91f90fdca 
Removing intermediate container 2952ba563006 
Step 3/5 : RUN ls -lah /tmp/glib-2.52.1.tar.xz 
---> Running in 9570826c1437 
-rw------- 1 root root 7.4M Apr 8 06:24 /tmp/glib-2.52.1.tar.xz 
---> 4335ecb50e2a 
Removing intermediate container 9570826c1437 
Step 4/5 : RUN tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz 
---> Running in e5a847dd0427 
tar (child): xz: Cannot exec: No such file or directory 
tar (child): Error is not recoverable: exiting now 
tar: Child returned status 2 
tar: Error is not recoverable: exiting now 
The command '/bin/sh -c tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz' returned a non-zero code: 2 

這裏是當我用ADD輸出:

[...] # same output 

Step 4/5 : ADD /tmp/glib-2.52.1.tar.xz /tmp/ 
lstat tmp/glib-2.52.1.tar.xz: no such file or directory 

感謝您的幫助!

+1

調試Dockerfile的一個好方法是使用'docker run -it myimage bash'並嘗試在終端重複'RUN'指令。 –

回答

4

務必仔細閱讀輸出提示:

tar (child): xz: Cannot exec: No such file or directory 

你缺少xz-utils包,其中需要處理XZ檔案的形象。嘗試:

RUN apt-get install xz-utils && tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz