[这是我在构建命令后得到的错误]
Step 7/9 : RUN chmod +x /main.sh
---> Running in 6e880a009c7d
chmod: cannot access '/main.sh': No such file or directory
The command '/bin/sh -c chmod +x /main.sh' returned a non-zero code: 1
这是我的码头工人文件
FROM centos:latest
MAINTAINER Aditya Gupta
#install git
RUN yum -y update
RUN yum -y install git
#make git repo folder, change GIT_LOCATION
RUN mkdir -p /home/centos/doimages/dockimg;cd /home/centos/doimages/dockimg;
RUN git clone https://(username):(password)@gitlab.com/abc/xyz.git (foldername);cd (foldername)/
Run chmod +x ./main.sh
RUN echo " ./main.shn "
EXPOSE Portnumber
当您在 Dockerfile 中执行 RUN 步骤时,会启动一个临时容器,通常带有一个 shell 来解析您的命令。该命令完成后,容器将退出,docker 将文件系统更改打包为映像层。对于每个 RUN 行,从一开始就重复该过程。
关键部分是 shell 退出,丢失您设置的环境变量,您运行的后台进程,在本例中,您尝试在此处设置的当前工作目录:
RUN git clone https://(username):(password)@gitlab.com/abc/xyz.git (foldername);cd (foldername)/
您可以更新 WORKDIR 的值,而不是 RUN 命令中的cd
:
RUN git clone https://(username):(password)@gitlab.com/abc/xyz.git (foldername)
WORKDIR foldername
你想要执行一个在你的 docker 机器上不存在的 shell 文件。 使用 ADD 命令将脚本添加到 docker 镜像中!
-- somewehe inside your dockerfile befor the execution ---
ADD ./PATH/ON/HOST/main.sh /PATH/YOU/LIKE/ON/DOCKER/MACHINE
然后尝试构建您的 docker 机器
这个问题可以通过workdir和克隆手动解决,而无需Docker文件,然后在Dockerfile中提供mainsh的路径。