Если у кого-то "плохого" есть доступ к контейнеру, в котором бежит ваше приложение, это уже крайне плохо, и, может быть, стоит думать сперва об этом, прежде чем беспокоиться об утечке переменных окружения изнутри контейнера...
Однако, переменные окружения имеют ряд недостатков. Когда мы храним секреты в переменных окружения, велик шанс того, что программист будет кидать эти секреты в логи, выводить их в поток вывода при сборке/деплое, хранить их в незашифрованном виде где-то в базе и т.д.
Поэтому, сейчас всё чаще используются специальные сервисы по хранению секретов.
Я вам рекомендую посмотреть, например, в сторону Hashicorp Vault и его Dynamic Secrets:
https://www.hashicorp.com/products/vault
Вот статья об интеграции в Gitlab:
https://docs.gitlab.com/ee/ci/examples/authenticat...
Видео о том, что это такое, и как это работает:
https://youtu.be/VYfl-DpZ5wM?si=SutHlBsLe70qCIVm
На русском:
https://youtu.be/-HIy89Vyobg?si=O4e8AL1SSCm8ImV1