嗨!
我有点卡在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
内部的键:有关如何执行此操作的任何线索?
谢谢!
docs on args指出:
您可以在指定构建参数时忽略该值,在这种情况下,其构建时的值就是运行Compose的环境中的值。
在您的情况下,您可能希望使用以下命令进行构建:
SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" docker-compose build