25 lines
1.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
# Release image build
|
|
|
|
운영팀은 release tag의 clean checkout에서 아래 명령으로 이미지를 빌드한다.
|
|
|
|
```bash
|
|
git checkout v0.8.0
|
|
./scripts/build_release_image.sh trex-core:0.8.0
|
|
```
|
|
|
|
스크립트는 `pyproject.toml`의 canonical version과 image tag가 일치하는지 확인하고 현재
|
|
commit을 OCI `org.opencontainers.image.revision` label로, package version을
|
|
`org.opencontainers.image.version` label로 기록한다. Dirty checkout, version이 다른 image
|
|
tag, label 불일치, non-root user 불일치 또는 container `--version` smoke test 실패 시 종료
|
|
코드 0을 반환하지 않는다.
|
|
|
|
Registry 경로를 사용할 때도 version tag를 유지한다.
|
|
|
|
```bash
|
|
./scripts/build_release_image.sh registry.example/trex-core:0.8.0
|
|
docker push registry.example/trex-core:0.8.0
|
|
```
|
|
|
|
배포 전 `docker image inspect`에서 나온 revision과 image digest를
|
|
[`release-provenance-standard.md`](release-provenance-standard.md)의 PRE/POST gate에 기록한다.
|
|
이 저장소는 registry publication을 자동화하지 않으므로 push 대상과 권한은 운영팀이 관리한다. |