programing

리포지토리가 도커 빌드에 서명되지 않았습니다.

closeapi 2023. 8. 9. 20:45
반응형

리포지토리가 도커 빌드에 서명되지 않았습니다.

도커 허브에서 가져온 최신 Ubuntu 이미지를 사용하는 다음 도커 파일을 가지고 있습니다.

FROM ubuntu:latest  
RUN apt-get update  && apt-get install -y  g++ llvm lcov 

도커 빌드 명령을 실행하면 다음 오류가 발생합니다.

Err:2 http://archive.ubuntu.com/ubuntu bionic InRelease 
At least one invalid signature was encountered.

Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
  At least one invalid signature was encountered.

Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
  At least one invalid signature was encountered.

Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
  At least one invalid signature was encountered.

Reading package lists...

W: GPG error: http://archive.ubuntu.com/ubuntu bionic InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic InRelease' is not signed.

W: GPG error: http://security.ubuntu.com/ubuntu bionic-security InRelease: At least one invalid signature was encountered.
E: The repository 'http://security.ubuntu.com/ubuntu bionic-security InRelease' is not signed.

W: GPG error: http://archive.ubuntu.com/ubuntu bionic-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic-updates InRelease' is not signed.

W: GPG error: http://archive.ubuntu.com/ubuntu bionic-backports InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic-backports InRelease' is not signed.

저는 여기 https://superuser.com/questions/1331936/how-can-i-get-past-a-repository-is-not-signed-message-when-attempting-to-upgr 에서 --allow-unauthenticated 또는 --allow-message-stitutories를 사용하여 이 오류를 전달할 수 있다고 읽었습니다. 하지만 두 가지 모두 컨테이너의 보안을 손상시킬 수 있는 해결 방법인 것 같습니다.

편집

Ubuntu:18.04, Ubuntu:19:04, Ubuntu:19.10 같은 오류를 다른 배포자 이름으로 풀하려고 했습니다.

루트 파티션이 꽉 찼습니다(아마 apt를 통해 패키지를 다운로드하려고 너무 많이 시도했을 수 있음). 그리고 실행 중입니다.sudo apt clean그 문제를 해결했습니다.


또한 다음 명령은 공간을 정리하는 데 도움이 됩니다.

docker system df # which can show disk usage and size of 'Build Cache'
docker image prune # add -f or --force to not prompt for confirmation
docker container prune # add -f or --force to not prompt for confirmation

Docker API v1.25+ 이후 출시:2019년 11월 18일)

아래 명령을 실행하여 문제를 해결했습니다.

docker system prune --force

--forceflag는 비 대화형 제거를 나타냅니다.

또한 볼륨 제거 명령을 시도해 볼 수도 있습니다.

docker volume prune --force

에 의해 고정된.

docker image prune -f

도커에 호스트 시스템의 최대 적절한 캐시 크기 제한이 있는 것 같습니다.

Docker Desktop(도커 데스크톱)을 사용하는 경우 설정에서 지정한 최대 디스크 이미지 크기를 확인합니다.빌드(소스) 중에 꽉 차면 문제가 발생할 수 있습니다.

enter image description here

Raspbian의 경우 업그레이드libseccomp다음을 사용하여 호스트 시스템에서 수동으로 실행:

curl http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb --output libseccomp2_2.5.1-1_armhf.deb
sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb

이것으로 저의 문제가 해결되었습니다.

원본 게시물은 여기에 있습니다.

@Danila와 @Andriy가 지적했듯이 이 문제는 실행 중에 쉽게 해결될 수 있습니다.

docker image prune -f
docker container prune -f

하지만 그 중 하나만 실행해도 효과가 없었기 때문에(MacOS X에서는) 이 답변을 게시합니다. 하지만 둘 다 실행하면 효과가 있습니다.

이것은 도움이 됩니다.

 docker volume prune

컨테이너를 실행해야 했습니다.--security-opt seccomp:unconfined.

두 대의 기계 중 한 대에서 이 문제가 발생했습니다.실행 중ls -ld /tmp받았습니다

drwxrwxrwt 3 root root 4096 May 15 20:46 /tmp

일하는 사람과

drwxr-xr-t 1 root root 4096 May 26 05:44 /tmp

실패한 사람을 위해내가 한 후에chmod 1777 /tmp효과가 있었습니다!!

편집:

그래서 저는 이 문제를 조금 더 깊이 파고들었고, 근본적으로 잘못된 것이 있다는 것을 깨달았습니다.저는 제 문제들을 다른 질문에 넣었고 나중에 이것을 스스로 해결한 답을 찾았습니다: https://stackoverflow.com/a/62088961/7387935 . https://stackoverflow.com/a/62088961/7387935

여기서 중요한 점은 정상적으로 작동하는 기계에서 스토리지 드라이버로 aufs를 사용하고 있었고, 결함이 있는 기계에서는 overlay2였습니다.제가 그것을 변경한 후, 모든 권한이 정확해졌습니다.

제가 나중에 다시 시도해 보았는데 효과가 있었습니다.

https://github.com/docker-library/php/issues/898#issuecomment-539234070 에서:

이는 일반적으로 미러에 문제가 있음을 의미하며(부분적으로 구식일 수 있음, 다른 미러와 완전히 동기화되지 않음) 종종 스스로 해결됩니다.

은 모두 더 위해 도커의 에 대해 합니다.docker container prune,docker image prune그리고.docker volume prune또는 Docker에서 자체적으로 설정한 Disk 제한을 늘릴 수도 있습니다(디스크 공간이 충분할 경우).

Docker Desktop에서 Settings > Resources이동하여 "Virtual Disk Limit"을 늘립니다.

여러 개의 대형 도커 이미지를 사용하여 작업하고 매번 잘라내기를 원하지 않기 때문에 도움이 되었습니다.

실행 중인 모든 컨테이너(2개의 경우)를 중지하여 이 문제를 해결할 수 있었습니다.

추가했습니다.--network=host설정할 수 있습니다.

docker build --network=host -t REPOSITORY:TAG  ./

이것은 나에게 효과가 있었습니다.docker system prune -af --volumes그리고 이 다른 것들도 마찬가지입니다.

docker image prune 
docker container prune
docker builder prune
docker volume prune

런닝 이행실 docker system df 볼륨 중 한지 확인합니다.

언급URL : https://stackoverflow.com/questions/59139453/repository-is-not-signed-in-docker-build

반응형