Docker 이미지에 로컬 디렉토리를 마운트하고 .bashrc
. 스크립트가 모든 새 셸에서 실행되기를 원하지 않는 한 스크립트가 함수로 구성되어야한다는 것을 잊지 마십시오. (이는 업데이트 공지를 참조하십시오.)
이 솔루션을 사용하여 도커 인스턴스 외부의 스크립트를 업데이트 할 수 있습니다. 이렇게하면 변경 사항이 발생해도 이미지를 다시 실행할 필요없이 새 셸을 엽니 다. (셸 다시 열기 제거-업데이트 알림 참조)
현재 디렉터리를 바인딩하는 방법은 다음과 같습니다.
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
이제 현재 디렉터리가 /scripts
Docker 인스턴스에 바인딩됩니다 .
(오래됨) .bashrc
변경 사항 을 저장하려면 다음 명령을 사용하여 작업 이미지를 커밋합니다.
docker commit $container_id $my_docker_build
최신 정보
모든 변경 사항에 대해 새 셸을 여는 문제를 해결하기 위해 이제 다음을 수행합니다.
dockerfile 자체에 RUN echo "/scripts/bashrc" > /root/.bashrc"
. 내부 zshrc
에서 스크립트 디렉토리를 경로로 내 보냅니다. 이제 스크립트 디렉토리에 하나가 아닌 여러 파일이 포함됩니다. 이제 모든 변경 사항에 대해 하위 셸을 열지 않고도 모든 스크립트를 직접 호출 할 수 있습니다.
BTW 컨테이너 외부에서도 히스토리 파일을 정의 할 수 있습니다. 이렇게하면 더 이상 bash 변경을 커밋 할 필요가 없습니다.
WORKDIR
와CMD
?