我尝试在Jenkins节点上使用Kaniko执行以下Dockerfile
FROM docker.mycompany.io/adoptopenjdk/openjdk11:jre-11.0.11_9-alpine
COPY app.jar app.jar
RUN mkdir /some-directory
但我得到的是错误
mkdir: can't create directory '/some-directory': File exists
我已经检查了基本图像(adoptopenjdk/openjdk11:jre-11.0.11_9-alpine
),我可以看到/some-directory
不存在,所以我不知道为什么kaniko告诉我目录已经存在。
我使用以下Kaniko命令
/kaniko/executor /
--context dir://myproject/src/main/docker /
--dockerfile myproject/src/main/docker/Dockerfile /
--destination docker-staging.docker.mycompany.io/foo/myproject:111.222.333 /
--registry-certificate docker-staging.docker.mycompany.io=/etc/ssl/certs/mycompany.crt /
--verbosity=debug /
--cache=true
1条答案
按热度按时间1tuwyuhd1#
事实证明,Kaniko命令实际上第一次在干净的Jenkins节点上成功,只有在同一Jenkins节点上的第二次/后续执行mkdir会失败,所以当错误发生时,我似乎有一个脏的Kaniko文件系统。
我通过在Kaniko命令中添加
--cleanup
和--cache=false
标志来解决这个问题。我相信在新版本的Kaniko中,我可以使用
--cache-run-layers=false
标志,但我使用的是旧版本的Kaniko,它没有此选项