我已经在 Docker 容器中设置了 Jenkins,并且正在尝试使用该服务器访问我的私有 Bitbucket 存储库。我需要将我的 SSH 密钥复制到该容器中,以便 Bitbucket 识别它,然后我可以让我的 Jenkins 服务器访问该存储库。
我的 docker-compose.yml 文件中有以下内容:
services:
jenkins:
build: .
volumes:
- jenkins-data:/var/jenkins_home
environment:
- SSH_PRIVATE_KEY=$(cat ~/.ssh/id_rsa)
ports:
- "8080:8080"
- "50000:50000"
volumes:
jenkins-data:
然而,echo $SSH_PRIVATE_KEY
gives /.ssh/id_rsa
从字面上看,而不是存储在其中的值。我听说在 Dockerfile 中执行此操作的问题是,仍然可以在将推送的图像的某一层中查看它。
我的问题是如何设置SSH_PRIVATE_KEY
我的文件内容的值?
我相信这可能是重复的如何使用 docker-compose 将环境变量设置到 docker 容器中然而,这个解决方案似乎并没有给我带来任何改变。
您可以在运行 compose 的 shell 中创建一个环境变量:
export SSH_PRIVATE_KEY=$(cat ~/.ssh/id_rsa)
然后在您的撰写中使用它,例如:
services:
jenkins:
build: .
volumes:
- jenkins-data:/var/jenkins_home
environment:
- SSH_PRIVATE_KEY
ports:
- "8080:8080"
- "50000:50000"
它应该从 shell 环境中获取容器的环境变量值,如docs :
容器中变量的值取自运行 Compose 的 shell 中同一变量的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)