Ошибка сборки Docker "chmod: не может получить доступ к '/main.sh': нет такого файла или каталога" - PullRequest
0 голосов
/ 25 октября 2018

[это ошибка, которую я получаю после команды сборки]

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

и вот мой файл Docker

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.sh\n "

 EXPOSE Portnumber

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Когда вы выполняете шаг RUN в Dockerfile, запускается временный контейнер, часто с оболочкой, анализирующей вашу команду.Когда эта команда завершается, контейнер завершается, и Docker упаковывает изменения файловой системы как слой изображения.Этот процесс повторяется с начала для каждой строки RUN.

Ключевой момент - это выход из оболочки, потеря переменных среды, которые вы установили, фоновые процессы, которые вы запустили, и в данном случае текущая рабочаякаталог, который вы пытались установить здесь:

RUN git clone https://(username):(password)@gitlab.com/abc/xyz.git (foldername);cd (foldername)/

Вместо cd в команде RUN вы можете обновить значение WORKDIR:

RUN git clone https://(username):(password)@gitlab.com/abc/xyz.git (foldername)
WORKDIR foldername
0 голосов
/ 29 октября 2018

проблема решена с помощью workdir и клонирования вручную без файла docker, а затем укажите путь к mainsh в файле dockerfile.

0 голосов
/ 25 октября 2018

Вы хотите запустить файл оболочки, который не существует на вашем докере.используйте команду ADD, чтобы добавить свой скрипт в образ вашего докера!

-- somewehe inside your dockerfile befor the execution ---
ADD ./PATH/ON/HOST/main.sh /PATH/YOU/LIKE/ON/DOCKER/MACHINE

Затем попробуйте собрать докер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...