我试图在构建docker的过程中使用ADD命令来公开一个私有的git LFS repo,但是我一直收到错误:
------
> git://192.168.189.143/REPO/my-libs.git:
#37 0.761 Permission denied, please try again.
#37 0.819 Permission denied, please try again.
#37 0.883 git@192.168.189.143: Permission denied (publickey,password).
#37 0.885 fatal: Could not read from remote repository.
#37 0.885
#37 0.885 Please make sure you have the correct access rights
#37 0.885 and the repository exists.
------
failed to load cache key: failed to fetch remote git@192.168.189.143:REPO/my-libs.git: exit status 128
以下是对该命令的引用:
我的docker文件看起来像这样:
# syntax=docker/dockerfile-upstream:master-labs
FROM ubuntu:18.04
ENV USER=markf78
USER ${USER}
WORKDIR /home/${USER}/temp
ADD git@192.168.189.143:REPO/my-libs.git /home/${USER}/temp
我在MacOS X主机上的构建命令是
docker build -t my-image --ssh default .
我能够使用ed25519 SSH密钥从MacOS X主机上的终端成功克隆。
有什么想法如何解决这个问题?我知道有其他解决方案可用,但这一个似乎是最干净的,因为它不存储我的私钥在图像中。
1条答案
按热度按时间4szc88ey1#
不要在映像构建中克隆存储库,您根本不需要这样做。
只需将Dockerfile放在repo的/中(也将其提交到repo以对其进行版本控制),然后在映像中使用Dockerfile命令复制repo文件:
COPY . .
第一个点是source,也就是你机器上的当前目录,也就是你的git repo,第二个点是target,也就是映像中的工作目录。你构建映像并发布它,把它推到docker注册表中,这样其他人就可以把它拉出来并开始使用它。如果你想在服务器的帮助下构建和发布更复杂的东西,可以查阅CI/CD技术。