测验:产出相同字节的构建
한국어 원문으로 표시합니다.
산출물 이름에 소스 해시를 넣었는데도 재현 가능한 빌드라고 말할 수 없는 이유는?
- 해시 계산에 SHA-256 대신 SHA-1 을 쓰면 충돌 위험이 있어서
- 이름이 길어져 레지스트리 태그 길이 제한에 걸릴 수 있어서
- 이름은 입력에서 나오지만 내용이 같다는 것은 따로 확인해야 해서
- 이름에 해시를 넣으면 사람이 어떤 버전인지 읽을 수 없어서
SOURCE_DATE_EPOCH 가 정의하는 값은 무엇인가?
- 보통 소스 코드의 마지막 수정 시각을 유닉스 에포크 이후 초 수로 나타낸 값
- 빌드가 시작된 시각을 ISO 8601 문자열로 나타낸 값
- 산출물이 레지스트리에 올라간 시각을 밀리초로 나타낸 값
- 빌드 기계의 시계와 기준 시계 사이의 차이를 초로 나타낸 값
tar 아카이브의 비결정성을 없애려 할 때 --sort=name 이 해결하는 것은?
- 아카이브 안에 기록되는 파일 수정 시각이 매번 달라지는 문제
- 소유자 이름과 uid/gid 가 빌드 계정에 따라 달라지는 문제
- PAX 헤더에 atime 과 ctime 이 섞여 들어가는 문제
- 디렉터리를 훑는 순서가 보장되지 않아 담기는 차례가 달라지는 문제
gzip 으로 압축할 때 -n 옵션을 쓰는 이유는?
- 압축률을 낮춰 압축 시간이 기계마다 달라지지 않게 하려고
- 원본 파일 이름과 시각을 헤더에 적지 않아 결과 바이트를 고정하려고
- 여러 파일을 하나로 이어 붙일 때 순서를 이름순으로 강제하려고
- 압축 해제할 때 원본 권한 비트를 그대로 복원하도록 하려고
이미지를 다이제스트로 지목해 받았을 때 그 다이제스트가 보장하는 것은?
- 그 바이트가 특정 소스 커밋에서 빌드됐다는 사실을 함께 보장한다
- 그 이미지가 신뢰할 수 있는 빌드 환경에서 만들어졌음을 보장한다
- 내가 받은 바이트가 그 다이제스트의 바이트가 맞다는 것만 보장한다
- 같은 소스를 다시 빌드하면 같은 다이제스트가 나온다는 것을 보장한다
캐시를 비웠더니 산출물의 SHA-256 이 달라졌다. 이 사실이 알려 주는 것은?
- 캐시 저장소가 손상되어 잘못된 내용을 돌려주고 있었다는 뜻이다
- 캐시 열쇠에 잠금 파일 해시가 빠져 있어 적중률이 낮았다는 뜻이다
- 캐시 압축 방식이 달라 복원할 때 파일 권한이 바뀌었다는 뜻이다
- 캐시 내용이 결과에 섞여 들어가 시험한 물건이 달랐다는 뜻이다