Tag: git

Docker更改.gitconfig与令牌私人回购访问

我一直在挖掘,以解决在docker构build阶段访问私有回购的问题。 似乎使用“令牌”是实现这一点最简单和合理的安全方式。 我遇到了一篇文章 ,解释这一点。 在评论中,有人build议改进以添加github令牌。 我不能在docker里面工作。 我如何更改.gitconfig并让git始终使用令牌? 该命令需要更改为使用令牌: RUN echo "[url \"git@github.com:\"]\n\tinsteadOf = https://github.com/" >> /root/.gitconfig 评论: 一个更好的方法是生成一个只读访问该回购协议,并使用类似git config –global url."https://${TOKEN}@github.com/".insteadOf "https://github.com/"的api标记git config –global url."https://${TOKEN}@github.com/".insteadOf "https://github.com/" 。 这样你不需要包装脚本或SSH主机密钥检查,也不需要烘烤你的所有访问 如果有人能帮我过桥,那将是非常棒的。 谢谢

如何在Docker容器中生成与主机用户具有相同所有者的文件

我使用docker容器在git仓库中完成一些开发任务。 我使用的容器是专门为每个项目构build的,每个贡献者只需要docker CLI即可完成任务。 糟糕的一面是容器以root身份运行,一旦容器停止,生成的文件就被root所拥有,这很糟糕。 在退出之前,我不能更改容器中的所有者,因为容器/ etc / passwd文件中没有所需的用户。 我会在编译docker镜像之前在容器中创build一个用户,但是这个容器不会是通用的(对于我的所有开发团队来说)。 最好的做法是什么?

如何导入导出的docker组成?

我在docker和所有的容器方面还是新的。 我有1.1.1.1的完全访问权限的服务器,我在那里安装了docker。 (没有docker撰写)在其他地方,我的朋友有服务器2.2.2.2,他安装docker和docker写在那里。 在2.2.2.2服务器上,我的朋友build立3个容器:容器A(Git),容器B(未知),容器C(未知)。 我可以通过浏览器访问容器A(Git)的内容。 我的问题是:我可以导入容器A到1.1.1.1我的服务器? 我有用户访问下载Git,但我想要的是导入容器,而不是Git(容器内的内容)。 任何提示? 我该怎么办? 或者,如果我没有访问命令控制台是不可能的?

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 […]

尽pipe存在SSH证书,Git克隆仍然不能在Docker内部工作

我试图克隆一个存储库到一台机器的图像,我成功地能够使用SSH来克隆Docker版本之外的存储库。 但是,每次我尝试克隆存储库时,都会被拒绝,原因如下: Cloning into 'my-repo'… Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 这是我的Dockerfile: FROM ubuntu as my-repo ARG GIT_SSH_KEY ARG GIT_SSH_PUBLIC_KEY ARG KNOWN_HOSTS RUN apt-get update RUN apt-get install -y git ssh # populate id_rsa files, populate known_hosts and […]

使用docker apache映像在windows 10机器中创build的公钥

我正在开发一个Windows 10机器(公司的政策:()我使用docker,创build一个Apache图像本地开发,因为该网站是Linux。我已经创build了一个SSH密钥在本地的Windows机器上如果我使用的Git在docker上的/ var / www文件夹中,如何使用我的公钥从git存储库中取出和推送?

jenkins / jenkins中的ssh身份validation:在克隆过程中,docker镜像挂起

我正在运行一个创buildjenkins/jenkins:lts的容器jenkins/jenkins:lts在64位Ubuntu上的docker镜像16.04.1 LTS和git轮询和克隆操作在我使用带密码的ssh密钥进行ssh身份validation时挂起 2017年12月22日下午1时47分55秒开始 轮询SCM上的更改 使用策略:默认 git rev-parse –is-inside-work-tree#timeout = 10 从远程Git存储库获取更改 git config remote.origin.url git@github.com:username / repo_path.git#timeout = 10 从git@github.com获取上游变更:username / repo_path.git git –version#timeout = 10 使用GIT_SSH设置凭据test-key git fetch –tags –progress git@github.com:username / repo_path.git + refs / heads / :refs / remotes / origin / #timeout = 3 这是轮询挂起时的ps输出 jenkins 2405 0.0 0.0 15604 1080 […]

如何使用谷歌云计算引擎启动脚本自动克隆Docker容器内的git仓库。 只能交互使用

我开始这样一个谷歌云计算引擎: gcloud compute instances create cloudml \ –image-family=container-vm \ –image-project=google-containers \ –machine-type=n1-highmem-8 \ –metadata-from-file startup-script=Job.sh 我的启动脚本的顶部看起来像 #!/bin/bash #get git keys gsutil cp -r gs://[mybucket]/.ssh/id_rsa ~/.ssh/ gsutil cp -r gs://[mybucket]/.ssh/id_rsa.pub ~/.ssh/ chmod 400 ~/.ssh/id_rsa #run docker container and pass keys sudo docker run -it -v /home/ben/.ssh/:/root/.ssh/ gcr.io/api-project-773889352370/rwhales bin/bash #add git to known hosts. ssh-keyscan github.com >> […]

用于开发的Docker容器

我有问题关于docker和使用它在Windows上的发展。 我已经安装了boot2docker,我可以安装一个容器,并通过“boot2docker ip”命令提供的ip来访问它。 但是,我应该如何设置我的项目在Widnows编辑我的应用程序在容器中的代码。 例如。 我有一个容器与lighttp和一些HTML5和JS应用程序里面。 我怎样才能让我的主机(Windows)访问这个代码? 我知道我可以在我的本地机器上创buildgit仓库,并将代码提交到远程仓库上,但这不是很实用。

如何使用Docker部署应用程序

我有一个node.js应用程序依赖于phantom.js。 由于node和phantom.js都不是一件轻而易举的事,所以我创build了一个Docker容器。 现在,我如何将我的应用程序的更新部署到我们的生产服务器上运行的这个docker容器。 对我而言,有两种可能性。 设置SSH并将我的git存储库直接推送到Docker容器中 添加卷并更新容器外的存储库 我倾向于后者,但我不确定是否有更好的方法。 提前致谢!