Секреты докера в томе докера - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь настроить основанный на Docker экземпляр Jenkins.По сути, я запускаю образ jenkins/jenkins:lts как контейнер и монтирую том данных, чтобы сохранить данные, которые создаст Дженкинс.

Теперь я хотел бы поделиться ключами ssh хоста с этим экземпляром Jenkins.Вероятно, это из-за моего ограниченного знания Docker, но моя проблема в том, что я не знаю, как я могу подключить дополнительные файлы / каталоги к своему тому, и Дженкинс требует, чтобы я поместил ssh-ключи в var/jenkins_home/.ssh.

Я пыталсянаивно создавая каталоги в Dockerfile, а затем монтируя их с помощью docker-compose.Как и следовало ожидать, произошел сбой, так как том - это тот, который содержит данные домашнего каталога Jenkins, а не сам контейнер Jenkins.

У меня есть следующий docker-compose.yml (не работает,по причинам, указанным выше):

version: '3.1'

services:
  jenkins:
    restart: always
    build: ./jenkins
    environment:
      VIRTUAL_HOST: ${NGINX_VIRTUAL_HOST}
      VIRTUAL_PORT: 8080
      JAVA_OPTS: -Djenkins.install.runSetupWizard=false
      TZ: America/New_York
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - jenkins_data:/var/jenkins_home
    networks:
      - web
      - proxy
    healthcheck:
      test: ["CMD", "curl --fail http://${NGINX_VIRTUAL_HOST}/ || exit 1"]
      interval: 1m
      timeout: 10s
      retries: 3
    secrets:
      - host_ssh_key

volumes:
  jenkins_data:

networks:
  web:
    driver: bridge
  proxy:
    external:
      name: nginx-proxy

secrets:
  host_ssh_key:
    file: ~/.ssh/id_rsa

Мой вопрос таков: могу ли я получить этот секрет в моем объеме данных?

1 Ответ

0 голосов
/ 20 мая 2019

откройте секрет, как дано, и попробуйте.

 secrets:
  - source: host_ssh_key
    target: /var/jenkins_home/.ssh/id_rsa
    mode:   0600
...