나는 단순히 bash 스크립트를 실행하는 다음 Docker 명령을 작성했습니다.build
RUN cd dir && ./build
그러나 스크립트는 sudo
내 컨테이너에 존재하지 않는 을 사용합니다. 스크립트를 편집하지 않고 내부에서 실행할 수 있도록 sudo
아무것도 구문 분석하지 않는 별칭을 어떻게 만들 수 있습니까 ?sudo something
something
build
build
답변1
별칭을 사용하려면 스크립트를 편집하고 sudo를 사용하는 스크립트 시작 부분의 줄 위에 다음을 추가해야 합니다.
sudo() {
"$@"
}
export -f sudo
또는 가 없는 파일을 생성하여 이를 수행할 수 있습니다 sudo
. 그런 다음 대신 새 파일을 실행할 수 있습니다../build
RUN cd dir && sed -e 's/sudo //g' ./build > ./buildme && chmod +x ./buildme && ./buildme
먼저, sed
delete 명령 sudo
과 -e
옵션은 원본 파일을 편집하지 않고 출력을 에코합니다. 다음 명령을 사용하여 출력을 "buildme"라는 새 파일로 리디렉션합니다.> ./buildme
sudo -e 's/sudo //g' ./build > ./buildme
그런 다음 다음을 chmod
사용하여 새 파일을 실행 가능하게 만듭니다.
chmod -x ./buildme
마지막으로 ./buildme
대신 사용하십시오 ./build
.
./buildme