我将使用来自这篇帖子的建议来实现Docker secrets,以便我可以使用本地SSH密钥来为我的容器授权访问Github。我在MacOS上且不使用Docker swarm。以下是我的设置:
docker-compose.yml
当我尝试运行
version: '3.1'
services:
[servicename]:
secrets:
- ssh_private_key
[...]
secrets:
ssh_private_key:
file: ~/.ssh/id_rsa
Dockerfile
FROM python:3.7 as intermediate
RUN mkdir /root/.ssh/
RUN ln -s /run/secrets/ssh_private_key /root/.ssh/id_rsa
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
COPY requirements_private_repos.txt ./
RUN pip install --no-cache-dir -r requirements_private_repos.txt
当我尝试运行
docker-compose build
并使用 SSH 密钥从私有远程仓库拉取时,我会遇到以下错误:Permission denied (publickey).
fatal: Could not read from remote repository.
我可以远程登录到Docker镜像,并看到密钥已经被创建并且在/run/secrets/ssh_private_key
中填充。
如果在Dockerfile中使用,为什么链接无法工作?如果docker secrets不是正确的方法,是否有更好的方法可以将SSH密钥从MacOS共享到Docker中?