Передать аргумент в Dockerfile из файла с docker -compose (S SH закрытый ключ) - PullRequest
0 голосов
/ 18 января 2020

Привет!

Я застрял в docker -композиции, так как мне нужно передать мой личный ключ S SH моему Dockerfile, объявленному в моем docker-compose.yml, как показано ниже:

docker -compose.yml

version: '3.7'
services:
  worker:
    build: .
    args:
      - SSH_PRIVATE_KEY

Dockerfile

ARG SSH_PRIVATE_KEY
RUN mkdir /root/.ssh/  && \
    echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa && \
    chmod 600 /root/.ssh/id_rsa

С самим docker, это довольно просто, так как мне просто нужно выполнить следующую команду:

docker build . --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)"

Но в docker -compose ... Проблема конфигурации ARGS в docker -compose, как описано в другом вопросе заключается в том, что я не могу включить закрытый ключ в файл docker-compose.yml.

Мне нужно разрешить docker -компонентный доступ к ключу внутри ~/.ssh/id_rsa: Любая подсказка, как это сделать?

Спасибо!

1 Ответ

1 голос
/ 18 января 2020

Документы по аргументам утверждают, что:

Вы можете опустить значение при указании аргумента сборки, в этом случае его значение во время сборки является значением в среде где Compose работает.

В вашем случае вы, вероятно, захотите собрать сервис worker с помощью следующей команды:

SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" docker-compose build

Кстати, ваш docker-compose.yml - это неправильно (отсутствует context) и должно быть:

version: '3.7'
services:
  worker:
    build:
      context: .
      args:
        - SSH_PRIVATE_KEY
...