[docker] Docker : Dockerfile에서 RUN mkdir을 실행할 수 없습니다.

이것은 Docker 이미지를 빌드 할 때 표시되는 오류 메시지입니다.

18 단계 : 실행 mkdir / var / www / app && chown luqo33 : www-data / var / www / app —> 7b5854406120에서 실행 mkdir : ‘/ var / www / app’디렉터리를 만들 수 없습니다 : 해당 파일 또는 디렉터리가 없습니다.

다음은 오류를 일으키는 Dockerfile의 일부입니다.

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 : ‘/ var / www / app’디렉토리를 만들 수 없습니다 : 해당 파일이나 디렉토리가 없습니다.”소리가 너무 무의미합니다. 물론 그러한 디렉토리는 없습니다. 나는 그것을 만들고 싶다. 여기서 무엇이 잘못 되었습니까?



답변

문제는 /var/www역시 존재하지 않으며 mkdir기본적으로 재귀 적이 지 않다는 것입니다. 즉, 바로 위의 상위 디렉토리가 존재할 것으로 예상합니다.

사용하다:

mkdir -p /var/www/app

… 또는 /var/wwwDockerfile에서이 지점에 도달하기 전에를 생성하는 패키지를 설치 하십시오.


답변

존재하지 않는 상위 디렉터리에서 중단되는 하위 디렉터리를 만들 때 -p플래그를 mkdir…로 전달해야 합니다. Dockerfile을 다음으로 업데이트하십시오.

RUN mkdir -p ...

나는 이것을 테스트했고 정확합니다.


답변

당신은 또한 단순히 사용할 수 있습니다

WORKDIR /var/www/app

폴더가 없으면 자동으로 생성됩니다.

그런 다음 있어야하는 디렉토리로 다시 전환하십시오.


답변

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

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


답변