在docker-compose中将ssh密钥文件用作环境变量

时间:2019-10-30 11:59:42

标签: docker jenkins docker-compose jenkins-plugins ssh-keys

我遇到了一个问题,我需要在docker容器中获取一个ssh密钥文件作为环境变量。

我的想法是,我不想在容器的构建时包含硬编码的值,而在运行时将其包含为环境变量。

我的tl; dr问题是:

是否可以将文件内容(在我的情况下为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

0 个答案:

没有答案