Я пытаюсь настроить основанный на 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
Мой вопрос таков: могу ли я получить этот секрет в моем объеме данных?