我正在使用Jenkins作业来自动化容器的构建/推送。为此,我使用“ Execute
Shell”构建步骤,并在内部进行所有Docker配置(我尝试使用管道,但是这些操作在我团队的Jenkins配置中不起作用;请在这个问题的范围)。这项工作首先克隆了一个git仓库(myrepo
),然后我有一个shell脚本编写了一些我想包含在Docker容器(例如run.sh
)中的文件以及一个Dockerfile。
构建失败时,我的Jenkins工作区的文件夹结构如下:
|-- myrepo/
| |-- myexe # executable file
| |-- testfiles/
| | |-- file1.txt
| | |-- file2.txt
| | |-- ...
|-- run.sh
|-- Dockerfile
我没有.dockerignore
档案。
在构建失败时,Dockerfile如下所示:
FROM centos
USER root
# create directories
RUN mkdir -p /opt/dir1/myexe
# copy shell script
COPY run.sh /usr/bin/runprog
# copy executable
COPY myrepo/myexe /opt/dir1/myexe/ # fails on this line
COPY myrepo/testfiles /opt/dir1/myexe/
# final setup
WORKDIR /opt/dir1/myexe/
CMD ["/opt/dir1/myexe/myexe"]
现在,在Jenkins上,在较早导入了仓库之后,我将在“ Execute
Shell”构建步骤中执行所有这些操作。我创建run.sh
并Dockerfile
在此步骤中使用echo
和输出重定向。在詹金斯的“执行外壳”构建步骤中执行的外壳脚本如下所示:
echo '#!/bin/sh
...
' > run.sh
echo 'FROM centos
...
' > Dockerfile
docker system prune -af
docker images # I can confirm from logs that no images remain
docker build -t containername:${DOCKER_IMAGE_TAG} .
但是当我运行此docker build
命令时,该命令的构建失败:
Step 5/8 : COPY myrepo/myexe /opt/dir1/myexe
COPY failed: stat /var/lib/docker/tmp/docker-builder190297994/opt/dir1/myexe: no such file or directory
我见过的其他所有问题均未提供有助于解决问题的解决方案。我的文件在本地存在,构建失败后可以在Jenkins工作区中看到。我的文件存在于本地
的.
目录,我可以通过将确认pwd
并ls
不仅仅是之前docker build
的命令。我没有.dockerignore
文件,因此Docker不应该忽略任何东西。但是我必须丢失一些东西,因为无论我想尝试什么,它仍然无法正常工作。
我在俯视什么?
(Docker版本为Docker version 18.09.7, build 2d0083d
)
您的评论# fails on this line
就是问题。根据Docker文档:
Docker会将以#开头的行视为注释,除非该行是有效的解析器指令。一行中其他任何地方的#标记均被视为参数。
此处的更多信息:https :
//docs.docker.com/engine/reference/builder/#format
问题内容: 我在运行docker文件时收到来自docker的错误消息。就是说/ var / lib / docker / aufs / layers / xxxx:运行Docker build时没有这样的文件或目录。 我尝试了多种方法来删除容器和图像,因此我对此非常有兴趣。 任何 Docker文件为: 完整的控制台输出为: 编辑 @BMitchs的建议解决了该问题: rm -rf / var /
我正在尝试编写一个程序,使用Scala运行Linux命令。 我写了一段代码来运行命令的功能。 代码片段 当我尝试运行命令
问题内容: 我试图在使用php7为Ubuntu 16.04调整它时遵循此Ansible教程。在此消息下方,您将找到我的Ansible文件。运行它并尝试在浏览器中访问该页面后,我得到了404,以及nginx错误日志中的以下内容: 2016/10/15 13:13:20 [crit] 28771#28771:* 7对unix的connect():/ var / run / php7.0-fpm.soc
我是docker的初学者,特别是docker Compose。目前,在创建我最初的easy docker环境时,我遇到了第一个错误,但我不知道为什么。我试图在stackoverflow中搜索解决方案,但没有找到任何可以帮助我的东西。用“docker-compose up”启动我的docker时,我会得到以下错误: $docker-compose up 删除errorinstance_app_1 重
问题内容: 我正在尝试安装berta(v 0.6.3b),但出现此错误: 警告:session_start()[function.session-start]:打开(/ var / php_sessions / sess_a0d6b8422181739d10066fb60cebfe5d,O_RDWR)失败:/hermes/bosweb/web010/b100/ipg.ellieniemeyerco