Dockerfile에서 스크립트 실행
Dockerfile에서 빌드 프로세스 중에 스크립트를 실행하려고합니다. 그러나 작동하지 않는 것 같습니다.
나는 그렇게 시도했다.
FROM php:7-fpm
ADD bootstrap.sh /
ENTRYPOINT ["/bin/bash", "/bootstrap.sh"]
또한이 방법 :
FROM php:7-fpm
ADD bootstrap.sh /
RUN bash -c "/bootstrap.sh"
또한 실행중인 컨테이너를 실행합니다.
docker exec symfony /bin/bash -c "/bootstrap.sh"
아무것도 작동하지 않는 것 같습니다.
어떻게하는지 알아?
RUN
및 ENTRYPOINT
스크립트를 실행하는 두 가지 방법입니다.
RUN
즉, 중간 컨테이너를 만들고 스크립트를 실행하며 새 중간 이미지에서 해당 컨테이너의 새 상태를 고정합니다. 그 후에는 스크립트가 실행되지 않습니다. 최종 이미지는 해당 스크립트의 결과를 반영해야합니다.
ENTRYPOINT
이미지 (아직 스크립트를 실행하지 않은)가 컨테이너를 생성하고 해당 스크립트를 실행 함을 의미합니다.
두 경우 모두 스크립트를 추가해야하며 a RUN chmod +x /bootstrap.sh
는 좋은 생각입니다.
그것은 또한 시작해야 오두막 (같은 #!/bin/sh
)
스크립트 ( KevinRaimbaud/docker-symfony/docker/php/bootstarp.sh
: 몇 가지 git config --global
명령)를 고려할 때 Dockerfile에서 해당 스크립트를 한 번 실행하는 것이 가장 좋지만 올바른 사용자를 사용하는지 확인하십시오 (전역 git 구성 파일은 % HOME % /. gitconfig이며 기본적으로 / root 하나)
Dockerfile에 추가 하십시오 .
RUN /bootstart.sh
그런 다음 컨테이너를 실행할 때의 내용 /root/.gitconfig
을 확인하여 스크립트가 실행되었는지 확인합니다.
ADD
작업 디렉토리의 명령 및 사양 을 사용하여 스크립트를 작성하십시오. 이와 같이 ( "script"는 스크립트의 이름이며 /root/script.sh
컨테이너에서 원하는 위치 이며 다른 경로 일 수 있습니다.
ADD script.sh /root/script.sh
이 경우 ADD
이전에 와야합니다. CMD
BTW가 하나 있으면 호스트 컴퓨터에서 컨테이너의 모든 위치로 스크립트를 가져 오는 멋진 방법입니다.
에서 CMD
장소[./script]
자동으로 스크립트를 실행해야합니다.
당신은 또한 지정할 수 있습니다 WORKDIR
로 /root
자동으로 컨테이너를 시작할 때, 루트에 배치 you'l,
위의 답변 외에도 :
Windows에서 .sh 스크립트 파일을 생성 / 편집 한 경우 Unix 형식으로 끝나는 줄로 저장되었는지 확인하십시오 . 기본적으로 Windows의 많은 편집기는 Unix 줄 끝을 Windows 형식으로 변환하고 Linux는 파일 시작 부분에서 shebang (#! / bin / sh)을 인식하지 못합니다. 따라서 Linux는 shebang이없는 경우와 같은 오류 메시지를 생성합니다.
팁 :
- Notepad ++를 사용하는 경우 "편집 / EOL 변환 / UNIX (LF)"를 클릭해야합니다.
- Visual Studio를 사용하는 경우 " End Of Line "플러그인을 설치하는 것이 좋습니다 . 그런 다음 Ctrl-R, Ctrl-W를 눌러 줄 끝을 표시 할 수 있습니다. Linux 스타일 엔딩을 설정하려면 Ctrl-R, Ctrl-L을 누릅니다. Windows 스타일의 경우 Ctrl-R, Ctrl-C를 누릅니다.
참고 URL : https://stackoverflow.com/questions/34549859/run-a-script-in-dockerfile
'Program Tip' 카테고리의 다른 글
파일을 C / C ++ 소스 코드 배열로 변환하는 스크립트 / 도구 (0) | 2020.11.01 |
---|---|
Python : defaultdict를 dict로 변환 (0) | 2020.11.01 |
Jenkins 용 API 토큰을 얻는 방법 (0) | 2020.11.01 |
복사본 대신 객체에 대한 const 참조 반환 (0) | 2020.11.01 |
디렉토리에 응용 프로그램 바로 가기 만들기 (0) | 2020.11.01 |