리포지토리가 도커 빌드에 서명되지 않았습니다.
도커 허브에서 가져온 최신 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
그--force
flag는 비 대화형 제거를 나타냅니다.
또한 볼륨 제거 명령을 시도해 볼 수도 있습니다.
docker volume prune --force
에 의해 고정된.
docker image prune -f
도커에 호스트 시스템의 최대 적절한 캐시 크기 제한이 있는 것 같습니다.
Docker Desktop(도커 데스크톱)을 사용하는 경우 설정에서 지정한 최대 디스크 이미지 크기를 확인합니다.빌드(소스) 중에 꽉 차면 문제가 발생할 수 있습니다.
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
'programing' 카테고리의 다른 글
char가 서명된 경우 "char foo = 255"가 정의되지 않은 동작입니까? (0) | 2023.08.09 |
---|---|
HTML5 로컬 스토리지 대체 솔루션 (0) | 2023.08.09 |
npm 패키지에 대한 역 의존성을 찾는 방법은 무엇입니까? (0) | 2023.08.09 |
jQuery 데이터 테이블 - 모든 행 데이터에 액세스 (0) | 2023.08.09 |
Perconxtrabackup (0) | 2023.08.04 |