docker - 在 docker-compose 中使用 ssh 密钥文件作为环境变量
问题描述
我遇到了需要在 docker 容器中获取 ssh 密钥文件作为环境变量的问题。
我的事情是,我不想包含在容器构建时硬编码但在运行时作为环境变量的值。
我的 tl;博士问题是:
有没有办法将文件的内容(在我的情况下是 ssh 密钥)分配给 docker-compose 中的环境变量?
我会想象这样的事情:
version: "3.1"
services:
jenkinspink:
image: jenkinspink:latest
ports:
- 8080:8080
# Here I want to pass a ssh keyfile as environment variable to the docker container
environment:
EC2_PRIVATE_KEY=<ssh_keyfile_on_host_system>
在我的特定用例中,我需要 ssh 密钥来在 Jenkins 中配置 EC2-Plugin。我正在通过 JCasC(Jenkins 配置即代码)来执行此操作。EC2-Plugin 和 JCasC 配置都不允许使用 ssh 密钥的文件路径。两者都希望它作为环境变量。现在我只看到 2 个选项:
- 要么我通过分叉 EC2-Plugin 存储库以一种干净的方式来做到这一点,并以允许注入文件路径的方式调整ssh 密钥部分,然后执行拉取请求。
- 或者我通过 docker-compose 将文件作为环境变量注入我的问题所指的快速方法。但我不知道怎么做。
任何提示表示赞赏:-D
解决方案
推荐阅读
- nlp - HuggingFace 变形金刚:BertTokenizer 改变字符
- php - Mailchimp - 如何在活动中设置日期区域设置?
- yakuake - Yakuake - 从 Shift+Tab 重新映射拆分导航
- javascript - 使用 Socket.io 的通知 - 如何发送给特定的用户/收件人?
- javascript - 我可以使用角色和/或使用木偶吗?
- rest - Splunk REST API - 指定警报的相对时间范围
- elasticsearch - 使用 Kibana 在弹性搜索中过滤消息正文
- html - div 显示 flex 文本 alling
- common-lisp - 如何在 Comon Lisp 上交付基于编译配置文件的 lib 项目?
- c# - 并行 ForEach 性能缓慢