IT

도커 파일에서 RUN mkdir를 실행할 수 없습니다.

itgroup 2023. 9. 20. 20:16
반응형

도커 파일에서 RUN mkdir를 실행할 수 없습니다.

도커 이미지를 작성할 때 발생하는 오류 메시지입니다.

Step 18 : RUN mkdir /var/www/app && chown luqo33:www-data /var/www/app
---> Running in 7b5854406120 mkdir: cannot create directory '/var/www/app': No such file or directory

이는 오류를 발생시키는 Docker 파일의 일부입니다.

FROM ubuntu:14.04
RUN groupadd -r luqo33 && useradd -r -g luqo33 luqo33

<installing nginx, fpm, php and a couple of other things>

RUN mkdir /var/www/app && chown luqo33:www-data /var/www/app
VOLUME /var/www/app
WORKDIR /var/www/app

mkdir: cannot create directory '/var/www/app': No such file or directory너무 말도 안 되는 소리로 들립니다. 물론 그런 디렉토리는 없습니다.나는 그것을.여기 뭐가 잘못됐나요?

문제는./var/www또한 존재하지 않습니다.mkdir기본적으로 재귀적이 아닙니다. 즉 부모 디렉터리가 존재할 것으로 예상됩니다.

용도:

mkdir -p /var/www/app

...또는 를 생성하는 패키지를 설치합니다./var/www도커 파일에서 이 지점에 도달하기 전에 말입니다.

존재하지 않는 상위 디렉토리에 연결된 하위 디렉토리를 작성할 때는-p에 깃발을 꽂다mkdir... 다음으로 도커 파일을 업데이트하십시오.

RUN mkdir -p ... 

제가 테스트해봤는데 맞아요.

간단히 사용할 수도 있습니다.

WORKDIR /var/www/app

폴더가 없으면 자동으로 폴더가 만들어집니다.

그런 다음 필요한 디렉토리로 다시 전환합니다.

이전 사용 사례와 별도로 Docker Composition을 사용하여 새 더미 폴더를 만들 경우 디렉토리를 만들 수도 있습니다.docker-compose up:

    volumes:
  - .:/ftp/
  - /ftp/node_modules
  - /ftp/files

또한 여러 디렉토리를 사용한 후 해당 디렉토리의 변경 소유자를 사용하려면 다음을 사용할 수 있습니다.

RUN set -ex && bash -c 'mkdir -p /var/www/{app1,app2}' && bash -c 'chown luqo33:www-data /var/www/{app1,app2}'                 

이거만!

언급URL : https://stackoverflow.com/questions/30741995/cannot-execute-run-mkdir-in-a-dockerfile

반응형