도커 빌드 중에 일부 환경 변수를 설정하는 bash 스크립트를 실행해야합니다.도커 빌드 중 구성 bash 스크립트 실행
스크립트는 다음과 같은 :
#!/bin/bash
export ENVVAR=TEST
export HOST=local
export PORT=port
나는 다른 방법으로 내 dockerfile이 스크립트를 호출하려고하지만 그들 중 누구도이 작동하지 않습니다. 나는 이것들을 시도했다 :
ADD ./myscript.sh
RUN chmod +x /myscript.sh;\
/bin/bash -c 'source ./myscript.sh';\
/bin/bash -c 'source /myscript.sh';\
/bin/bash -c source ./myscript.sh;\
/bin/bash -c source /myscript.sh;\
source ./myscript.sh;\
source /myscript.sh;\
/myscript.sh;\
./myscript.sh;\
ENTRYPOINT ["/bin/bash"]
물론 나는이 명령 중 하나를 내 RUN에 가지고 있었고 여기에 그룹화했다.
컨테이너를 실행하고 source ./myscript.sh
을 사용하면 예상대로 작동합니다.
여러 가지 제한 사항과 다른 이유 때문에 docker 작성 또는 -e 인수, dockerfile의 ENV KEY VALUE 또는 유사한 접근법을 사용할 수 없습니다. 도커 빌드 프로세스 중에 환경 변수를 설정해야합니다.
감사합니다. 그러나 나중에 환경 변수 설정에 따라 셸 스크립트를 사용하여 추가 실행이 있으면 어떻게해야합니까? 'RUN/configure.sh' <- 이것은 미리 설정 한 환경 변수에 의존합니다. 그것들을 함께 가지지 않는 것은 격리와 구조화의 이유 때문입니다. – sceiler
그런 다음 configure.sh를 실행하기 전에 쉘을 소스하십시오. 예 :'RUN source myscript.sh && configure.sh' – Alkaline