【发布时间】:2019-05-20 15:47:51
【问题描述】:
我正在尝试设置一个基于 Docker 的 Jenkins 实例。本质上,我将jenkins/jenkins:lts 映像作为容器运行并挂载数据卷以保存 Jenkins 将创建的数据。
现在,我想做的是与这个 Jenkins 实例共享主机的 ssh 密钥。这可能是由于我对 Docker 的了解有限,但我的问题是我不知道如何将其他文件/目录挂载到我的卷中,而 Jenkins 要求我将 ssh 密钥放在 var/jenkins_home/.ssh 中。
我尝试天真地在 Dockerfile 中创建目录,然后使用 docker-compose 挂载它们。正如您所料,它失败了,因为 volume 是包含 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
我的问题是:我是否可以在我的数据量中获得这个秘密?
【问题讨论】:
标签: docker jenkins docker-compose docker-volume