Я не совсем уверен, полностью ли я понимаю ваш вопрос, поэтому позвольте мне перефразировать то, что, по вашему мнению, вы спрашиваете:
- Вы создаете Docker изображение в который вы жестко кодируете ключ API, так что при запуске изображения - ключ API уже настроен.
- Вы публикуете свое изображение в Docker Hub - но вы не публикуете изображение в открытом доступе, это частное изображение для вашей учетной записи.
Итак, нет, ваш ключ API в этом случае не раскрывается, но это не очень хорошая практика.
Во-первых, вы доверяете Docker Hub. Если ваша учетная запись скомпрометирована или Docker Hub скомпрометирован (что произошло до ), тогда ваш ключ API уязвим. Тонкий шанс, который приводит меня к основной причине, почему это плохая идея:
Вам не следует хранить конфигурацию в вашем приложении. Это плохая практика, которая не позволяет вашему приложению правильно перемещаться между средами. Обычно вам нужны отдельные ключи API для сред разработки, тестирования и производства. И вы хотите иметь возможность легко использовать одно и то же изображение и изменять его, просто настраивая переменную среды.
Что касается защиты ваших ключей аутентификации - поместите их в переменные среды или используйте службу для захвата ключей во время выполнения время (например: Hashicorp Vault, AWS хранилище параметров, et c.)