Как стать автором
Обновить
Домик
Домик

container-tools

Подписывать контейнеры с помощью GPG важно, потому что это гарантирует, что образ действительно создан вами или вашей командой и не был изменён после сборки. GPG — это проверенный инструмент, который уже давно используется для шифрования и подписи данных. Он не зависит от сторонних решений и является частью свободного ПО, поэтому ему можно доверять.

Когда вы подписываете контейнер, вы подтверждаете его целостность. Если кто-то заменит образ на поддельный с вредоносным кодом, подпись позволит это обнаружить. Без подписи вы рискуете запустить что-то небезопасное, даже не зная об этом.

Конечно, есть и другие инструменты, например cosign, которые тоже полезны, особенно в облачных средах. Но GPG остаётся надёжным базовым решением, которое работает везде и не требует дополнительной настройки. Проще говоря, это как печать на документе: если её нет, вы не можете быть уверены, что всё чисто.

Как это делать с помощью container-tools

container-tools % make

Usage: make <target>

  help               - Display this help message
  all                - Build all Debian images
  check-dependencies - Verify required tools are installed
  clean              - Remove all build artifacts and downloads
  list-vars          - List all Makefile variables and their origins
  shellcheck         - Validate all bash scripts
  package   	     - Create tar.gz archive of the directory
  release            - Create Git tag and GitHub release
  archive            - Create git archive of HEAD
  bundle             - Create git bundle of repository

 ============================
  ** Debian Linux targets **
 ============================

|all|

|debian11|
|debian11-java|
|debian11-java-slim|
|debian11-corretto|
|debian11-graal|
|debian11-graal-slim|
|debian11-java-slim-maven|
|debian11-java-slim-gradle|
|debian11-graal-slim-maven|
|debian11-graal-slim-gradle|

|debian11-java-kafka|
|debian11-java-slim-kafka|

|debian11-nodejs-23.11.0|

|debian11-python-3.9.18|

Собираем базовый образ для NodeJS

make debian11-nodejs-23.11.0

После завершения сборки:

[Image was built successfully]
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Artifact location: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar

Artifact size: 93M

Для подписи используем gpg.py в составе container-tools:

./scripts/gpg.py --directory /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar --gpg-key-id 4795A07D0372203EFDDA0BF0C465AD00090932DB
2025-04-25 13:39:41,269 [INFO] Signing tarball: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar -> Signature: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar.asc
2025-04-25 13:39:41,752 [INFO] Successfully signed tarball: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar
2025-04-25 13:39:41,752 [INFO] Signature saved to: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar.asc
2025-04-25 13:39:41,752 [INFO] All tarballs have been processed successfully.

Подтверждаем:

./scripts/gpg.py --directory /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar --gpg-key-id 4795A07D0372203EFDDA0BF0C465AD00090932DB --verify
2025-04-25 13:40:19,734 [INFO] Verifying tarball: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar against signature: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar.asc
2025-04-25 13:40:20,192 [INFO] Verification successful: /srv/container-tools/debian/dist/debian11-nodejs-23.11.0/debian11-nodejs-23.11.0.tar
2025-04-25 13:40:20,193 [INFO] All tarballs have bee
Теги:
+2
Комментарии0

Публикации