我想将我的github私钥共享到我的docker容器中.
我正在考虑通过ARG通过docker-compose.yml共享它.
是否可以按此处所述使用ARG共享私钥?
Pass a variable to a Dockerfile from a docker-compose.yml file
# docker-compose.yml file
version: '2'
services:
my_service:
build:
context: .
dockerfile: ./docker/Dockerfile
args:
- PRIVATE_KEY=MULTI-LINE PLAIN TEXT RSA PRIVATE KEY
然后我希望在Dockerfile中将其用作:
ARG PRIVATE_KEY
RUN echo $PRIVATE_KEY >> ~/.ssh/id_rsa
RUN pip install git+ssh://git@github.com/...
是否可以通过ARGs?
最佳答案
如果您可以使用最新的docker 1.13(或ce 17.03 ce),则可以使用docker swarm secret:请参阅“ Managing Secrets In Docker Swarm Clusters”
这样就可以将机密与正在启动的容器相关联:
docker service create --name test \
--secret my_secret \
--restart-condition none \
alpine cat /run/secrets/my_secret
如果您不能使用docker swarm,则可以尝试设置docker credential helper.
参见“ Getting rid of Docker plain text credentials”.但这可能不适用于ssh私钥.
您可以使用独立的机密管理器(例如Hashicorp Vault)在“ Secrets and LIE-abilities: The State of Modern Secret Management (2017)”中检查其他相关选项.