Docker 构建失败 "chmod:无法访问'/main.sh':没有这样的文件或目录"



[这是我在构建命令后得到的错误]

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的路径。

最新更新