Для ясности, я говорю о конфигурации secrets
, доступной для docker-compose
3.x.
Я не говорю о передаче секретных ключей / токенов с помощью переменных среды (от хоста). или из настроек Gitlab CI / CD).
Допустим, у меня есть эта docker-compose
конфигурация:
version: "3.7"
services:
my-app:
image: ubuntu:18.04
container_name: my-app-container
command: tail -f /dev/null
secrets:
- my_app_secrets
secrets:
my_app_secrets:
file: /path/to/secrets.txt
Когда я запускаю контейнер вручную
$ docker-compose up -d
$ docker-compose exec my-app bash
A / run / secrets / my_app_secrets становится доступным внутри контейнера, содержащего то же точное содержимое, что и secrets.txt . Путь / run / secrets / определяется конфигурацией secrets
.
Теперь мне нужно использовать эту же настройку для конвейера Gitlab CI. К сожалению, я не могу найти конфигурацию для добавления в .gitlab-ci.yml или в / etc / gitlab-runner / config. toml , что позволит мне указать ту же конфигурацию secrets
. Я уверен, что он не смонтирован, потому что я использую пользовательский сценарий ENTRYPOINT
, который проверяет файл / run / secrets / my_app_secrets и его там нет.
if [[ ! -e "/run/secrets/my_app_secrets" ]];
then
print_error "Did not find mounted app secrets from host"
return 1
fi
Текущий Теперь у меня есть решение использовать конфигурацию volumes
в разделе [runners.docker] и смонтировать / path / to / secrets.txt в качестве обычного тома.
volumes = [
"/path/to/secrets.txt:/run/secrets/my_app_secrets"
]
Но я думаю, что подобное дублирует конфигурацию, и я вручную указываю / run / secrets / secret_name путь.
Есть ли другой способ указать secrets
конфиг для gitlab-runner?
ENV подробности:
- Gitlab CE 12.8.6
- gitlab-runner 12.7.1
- Docker 19.03.6
- docker - составить 1.24.0