Мое приложение зависит от секретов, которые я храню в папке .credentials
(например, .credentials/.env
, .credentials/.google_api.json
и т. Д.). Я не хочу, чтобы эти файлы были встроены в образ докера, однако они нужныбыть видимым для контейнера Docker.
Мое решение:
- Добавить
.credentials
к моему .dockerignore - Смонтировать папку учетных данных в режиме только для чтенияс томом:
# docker-compose.yaml
version: '3'
services:
app:
build: .
volumes:
- ./.credentials:/app/.credentials:ro
Это не работает (я не вижу никаких учетных данных в док-контейнере). Мне интересно, вызывает ли .dockerignore
громкость, или я сделал что-то еще не так?
Я поступаю неправильно? Например, я мог бы просто передать файл .env
с помощью docker run IMAGE_NAME --env-file .env
Редактировать:
Моя проблема была связана с тем, как я запускал образ. Я делал docker-compose build
, а затем docker run IMAGE_NAME
, предполагая, что тома были встроены в образ. Однако, похоже, это не так.
Вместо приведенный выше код работает , когда я выполняю docker-compose run app
(где app - имя службы) после сборки.