首页 > 解决方案 > 在 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 个选项:

任何提示表示赞赏:-D

标签: dockerjenkinsdocker-composejenkins-pluginsssh-keys

解决方案


推荐阅读