
CIS 벤치마크 규격 기본 이미지가 있습니다. 내 애플리케이션에 대한 불변 이미지를 구별하기 위해 이것을 가져오려고 하면
apt-get install -y docker.io
오류가 발생했습니다.
==> amazon-ebs: Can't exec "/tmp/docker.io.config.NzitwJ": Permission denied at /usr/share/perl/5.26/IPC/Open3.pm line 178.
==> amazon-ebs: open2: exec of /tmp/docker.io.config.NzitwJ configure failed: Permission denied at /usr/share/perl5/Debconf/ConfModule.pm line 59.
noexec
이는 파일 시스템 에 CIS 호환 이미지가 설정되어 있기 때문입니다 /tmp
.
apt-get이 설치 스크립트에 다른 파일 시스템을 사용하도록 하는 명령줄이나 이에 상응하는 방법을 아는 사람이 있습니까? 아니면 소스에서 설치하도록 작업을 예약해야 합니까? 참고로 이는 뿐만 아니라 다른 사람들에게도 영향을 미칩니다 docker.io
. apt-get
앱별 패키지 방법이 아닌 수준의 솔루션을 찾고 있습니다 .
답변1
코드를 추가했습니다.이 게시물기본 이미지를 가져오고 이미지별 소프트웨어를 설치하기 위해 실행되는(파이프라인 조정자 삽입) 스크립트에서.
스크립트가 sudo를 사용하고 있고 기본적으로 루트 계정을 채택하지 않기 때문에 sudo를 실행하면 기본 우분투 사용자가 채택되어 tmp 파일을 잘못된 위치에 설정하고 작동하지 않습니다. 이를 실행하려면 루트가 필요하기 때문에 apt-get
루트만 내 스크립트를 실행할 수 있도록 다음을 추가했습니다.
if [[ ${EUID} -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
그런 다음 bash 스크립트의 명령에 대한 sudo 접두사를 제거하고 sudo를 사용하여 전체 스크립트를 실행하여 오케스트레이터가 내 스크립트를 루트 사용자로 실행하도록 했습니다. 이는 오케스트레이터가 빌드 시스템에서 tmp 파일을 올바르게 생성했음을 의미합니다.
@djdomi에 대한 신뢰.