如何在Docker容器窗口中设置SSH_AUTH_SOCK env变量

j8yoct9x  于 2023-02-18  发布在  Docker
关注(0)|答案(1)|浏览(195)

我在Windows机器上复制了dockerfile中的ssh密钥,用于开发目的,但无法设置SSH_AUTH_SOCK变量,
这是我Dockerfile

FROM node:alpine

WORKDIR /usr/src/app
COPY package.json .

ADD id_rsa /root/.ssh/id_rsa
RUN chmod 700 /root/.ssh/id_rsa \
  && touch /root/.ssh/known_hosts \
  && ssh-keyscan -H github.com >> /root/.ssh/known_hosts \
  && eval `ssh-agent -s` && ssh-add /root/.ssh/id_rsa

RUN yarn
CMD [ "npm", "start" ]

我还尝试在编写文件中评估ssh-agent的结果

command: >
  sh -c 'eval `ssh-agent -s`
  && ssh-add /root/.ssh/id_rsa
  && echo $SSH_AUTH_SOCK'

当我执行简单的nodejs文件时,SSH_AUTH_SOCK没有设置。
printenv也不显示它,有什么办法吗?
我可以看到有很多针对linux和osx的ssh代理转发器解决方案,但它在windows上不起作用。

von4xj4u

von4xj4u1#

请注意,它在传递实际ssh密钥的完整路径时有效,例如:

$ docker build --ssh default=c:/users/MY_WINDOWS_USER_NAME/.ssh/id_ed25519 .

$ docker build --ssh default=c:/users/MY_WINDOWS_USER_NAME/.ssh/id_rsa .

相关问题