Tag: git clone

用https使用dockerfile克隆位桶回购。如何传递密码?

我有一个docker文件。 其中我必须克隆使用https url的bitbucket存储库,但我如何传递密码,使克隆完成? 是的,我试过SSH。它的作品,但我需要https克隆一些shell脚本运行,以便它应该自动接受密码。 这是我的docker命令来克隆repo: 运行git克隆https://username@bitbucket.org/abc/xyz.git 这里是我在buildind docker文件时得到的错误:\ 克隆到“新文件夹”…致命:无法读取“ https://username@bitbucket.org ”的密码:没有这样的设备或地址 我的build立命令是: sudo docker build –no-cache = true -t image:build。

Jenkins:在Docker容器中克隆私有存储库

我知道在这里已经有很多关于这个话题的问题了,我尝试了几乎所有的解决scheme,但是我现在处于无法工作的状态(我想要的方式是)。 问题 我有Jenkins中的docker容器,在这个docker容器中,我尝试克隆一个私有存储库。 为此,我需要将我的公共Jenkins密钥添加到我的Git存储库,并且我的泊坞窗容器需要知道这个SSH密钥。 我目前的工作解决scheme 我已经能够通过在我的Jenkinsfile执行以下操作来完成此Jenkinsfile : docker.image('php_jenkins_test').inside('–env COMPOSER_HOME=$WORKSPACE/.composer -v /etc/passwd:/etc/passwd:ro -v /home/jenkins/.ssh:/home/jenkins/.ssh:ro') { sshagent(['jenkins-ssh-publickey']) { sh "./test/run-tests.sh" } } 我挂载我的etc/passwd和/home/jenkins/.ssh作为只读卷,原因如下: Jenkins Docker插件作为Jenkins用户运行。 这个用户的UID和GID在我的Docker容器中是不知道的。 所以我不得不挂载/etc/passwd 。 当从Git仓库中取出时,我的known_hosts容器中需要知道我的known_hosts (和我的键?)。 由于/etc/passwd将jenkins用户映射到/home/jenkins ,所以我必须在我的客户机上安装Jenkins的SSH目录。 sshagent命令设置了SSH套接字,以便我的密钥可以在我的容器中访问(纠正我,如果我错了,我是相当新的jenkins和docker)。 就像我说的:这已经起作用了。 通过这个设置,我可以在Jenkins中的Docker容器中克隆私有的git仓库。 那么问题是什么呢? 我发现/ /home/jenkins/.ssh有点危险。 我把它挂载为只读,但我在一个拥有70多个开发者的组织中工作,如果其中一个以我的代码为例,并删除:ro ,他们很可能会搞垮Jenkins的.ssh -folder和this非常非常糟糕 所以我正在寻找一种方法克隆私人存储库,而无需挂载.ssh夹。 毕竟,这不是什么sshagent插件是什么? 我到目前为止所尝试过的 由于我的docker容器挂载了/etc/passwd它会在某个时间点查找/home/jenkins -folder。 由于sshagent会照顾我想要的key,所以我只需要关心known_hosts -file。 所以我在我的Dockerfile中尝试了以下内容: RUN mkdir -p /home/jenkins/.ssh RUN chmod 700 /home/jenkins/.ssh […]

git clone无法访问docker容器中的主机

我很久以前遇到这个问题,根本解决不了。 任何人都可以给我一些帮助吗? 我创build了一个docker容器,然后在docker里面,我想克隆一个内部的git仓库: git clone git@git.xxx.net:ngcsc/ngcsc.git 我得到这个错误: ssh: connect to host git.xxx.net port 22: No route to host fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 如果我使用curl https://git.xxx.net ,我也遇到错误: curl: (7) Failed connect to git.xxx.net:443; No route to host 我可以curl其他https网站,如curl https://www.google.com 我不知道为什么一些内部网站可以在docker里面find,有些则不是。 任何build议表示赞赏

通过Dockerfile安装包时出错

我是Docker的新手。 我正在尝试在Ubuntu映像上安装捆绑软件包作为父映像。 这是我的Dockerfile的外观 – FROM ubuntu RUN apt-get update RUN apt-get update && apt-get install -y curl RUN apt-get remove -y openssh-client RUN apt-get autoclean && apt-get update && apt-get install -y openssh- server #INSTALL ESSESNTIAL PACKAGES #RUN apt-get -y install zsh htop RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server #RUN curl -sSL https://rvm.io/mpapis.asc | gpg […]

Dockerfile'运行git克隆'删除中间容器

我使用Windows 7上的Boot2Docker来构buildDockerfile的开发环境。 当我运行docker build -t myimage dir/of/docker/file ,然后一切工作正常,直到这一行: RUN git clone –verbose https://github.com/zsh-users/antigen ~/.antigen/antigen 这条线的输出是: Step 12 : RUN git clone –verbose https://github.com/zsh-users/antigen ~/.antigen/antigen —> Running in 26cba91e912a Cloning into '/root/.antigen/antigen'… POST git-upload-pack (302 bytes) —> e0012659884b Removing intermediate container 26cba91e912a Successfully built e0012659884b 克隆(公共存储库)被删除,容器中不存在〜/。抗原/抗原。 “克隆到…”是红色的,所以我觉得这个命令有问题。 但是,如果我在容器的shell中docker run -it myimage (由docker run -it myimage ),它将克隆它。 […]

Git的Dockerfile策略

使用Dockerfile将私有Git存储库克隆到Docker容器中的最佳策略是什么? 优点缺点? 我知道我可以在Dockerfile上添加命令,以便将我的私有存储库克隆到Docker容器中。 但是我想知道人们在这个案例中使用了哪些不同的方法。 这不在Dockerfile最佳实践指南中。