Docker Go SDK ImageBuild忽略错误

时间:2018-11-21 03:25:08

标签: docker go sdk

如果我的Dockerfile在缺少文件的地方有一个COPY命令,则ImageBuild不会报告错误。

这是我的Dockerfile:

FROM gcr.io/distroless/base

COPY ap1.repo /etc/yum.repos.d/ap.repo

这是我的测试脚本

https://gist.github.com/gdanko/94aaf2770f586d0490c3c4a941544c13

如果我使用COPY命令运行测试脚本但没有文件,则ImageBuild不会报告错误并继续。这是输出。

[gdanko@SDGL141bb265b go]$ go run dockerbuild.go 
Tarring => Dockerfile
*** success ***
{0xc0002f6100 linux}

*** ImageBuild output ***
Step 1/2 : FROM gcr.io/distroless/base

但是,如果我进入planB目录并运行docker build,我将最终出错。

[gdanko@SDGL141bb265b planB]$ docker build -t planb .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM gcr.io/distroless/base
 ---> 1358ac6604c5
Step 2/2 : COPY ap1.repo /etc/yum.repos.d/ap.repo
COPY failed: stat /var/lib/docker/tmp/docker-builder088607045/ap1.repo: no such file or directory

现在,如果我触摸丢失的文件,则脚本和手动docker构建均可正常工作。

[gdanko@SDGL141bb265b go]$ touch planB/ap1.repo
[gdanko@SDGL141bb265b go]$ go run dockerbuild.go 
Tarring => Dockerfile
Tarring => ap1.repo
*** success ***
{0xc0002d8380 linux}

*** ImageBuild output ***
Step 1/2 : FROM gcr.io/distroless/base
---> 1358ac6604c5
Step 2/2 : COPY ap1.repo /etc/yum.repos.d/ap.repo
---> 32459dc23e01
---> 32459dc23e01
Successfully built 32459dc23e01
Successfully tagged dummy:latest

手动

[gdanko@SDGL141bb265b go]$ cd planB
[gdanko@SDGL141bb265b planB]$ docker build -t planb .
Sending build context to Docker daemon   2.56kB
Step 1/2 : FROM gcr.io/distroless/base
---> 1358ac6604c5
Step 2/2 : COPY ap1.repo /etc/yum.repos.d/ap.repo
 ---> Using cache
 ---> 81d57edf0715
Successfully built 81d57edf0715
Successfully tagged planb:latest

有人遇到这个问题吗?

0 个答案:

没有答案