从具有docker-compose(SSH私钥)的文件传递参数到Dockerfile,

问题描述 投票:0回答:1

嗨!

我有点卡在docker-compose中,因为我需要将我的私有SSH密钥传递给在Dockerfile中声明的docker-compose.yml,如下所示:

docker-compose.yml

version: '3.7'
services:
  worker:
    build: .
    args:
      - SSH_PRIVATE_KEY

Dockerfile

ARG SSH_PRIVATE_KEY
RUN mkdir /root/.ssh/  && \
    echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa && \
    chmod 600 /root/.ssh/id_rsa

使用docker本身,这很容易,因为我只需要运行以下命令:

docker build . --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)"

但是在docker-compose中...如ARGS所述,在docker-compose中配置in another question的问题是我不能让私钥位于docker-compose.yml文件中。

我需要让docker-compose访问~/.ssh/id_rsa内部的键:有关如何执行此操作的任何线索?

谢谢!

docker docker-compose dockerfile
1个回答
0
投票

docs on args指出:

您可以在指定构建参数时忽略该值,在这种情况下,其构建时的值就是运行Compose的环境中的值。

在您的情况下,您可能希望使用以下命令进行构建:

SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" docker-compose build
© www.soinside.com 2019 - 2024. All rights reserved.