Tag: git

如果重buildDocker镜像,如果它的依赖远程git仓库更新?

我有一个从远程git仓库克隆的依赖项,然后构build并插入到我的应用程序中: RUN git clone git@remote_repo.git . RUN build 当然,这个回购是并行开发的,并不时更新。 有没有办法检查是否有docker-compose build运行期间有新的变化,如果需要重build它?

DockerFile与python requirements.txt中的私人github回购

我有一个python项目,我正在写dockerfile。 这个项目依赖于我的另一个在我的私人github帐户中托pipe的python项目。 我怎样才能使dockerfile作为一个依赖项(使用我的requirements.txt文件)在其他项目中正确加载? 我试图复制我的私人SSH密钥到: /root/.ssh 目录作为DockerFile的一部分,并且包含作为requirements.txt文件一部分的克隆url,但是这只是感觉不对,因为我的私钥将被存储在一个docker图像层中。 有没有最佳做法呢?

我如何使用git客户端来访问gitlab docker?

我已经成功运行了gitlab docker image ,但无法使用git客户端来访问它。 (1)我发现有3个IP地址: a)主机IP: 10.137.20.113 ; b)连接gitlab运行容器,显示其IP: 172.17.0.13 ; c)login网页,显示项目地址: ssh: git@192.168.59.103:root/test.git 。 为什么有一个IP地址( 192.168.59.103 )? (2)我已经在gitlab添加了root用户SSH密钥,但是无法使用ssh -p 2222 10.137.20.113命令访问服务器。 我如何使用git客户端来访问gitlab ?

在Docker容器中克隆私人git回购

我有一个项目(用ruby书写),我想运行在一个docker图像。 项目的源代码存储在一个私人的git仓库中,镜像是通过Dockerfile创build的。 该项目是巨大的,所以git克隆需要相当长的时间。 问题是,我不知道如何(何时/何地)正确地克隆docker图像的git仓库。 我可以将git仓库克隆到临时目录,并通过Dockerfile中的COPY命令复制源代码。 我不喜欢这样做,因为我将不得不维持临时目录中的第二个克隆。 或者,我可以在Docker镜像中克隆回购。 问题是我的ssh键,我不能合理地保持在图像中。 我可以只添加“我自己”的密钥到允许访问所有内容的git服务器。 所以,我创build了这样一个脚本: UUID=`uuid` docker run \ -v $HOME/.ssh:/home/user/.ssh:ro\ –name=$UUID \ -it $1 /scripts/git-clone-update.sh docker commit $UUID $1 docker rm $UUI git-clone-update.sh克隆项目,如果它不存在或只是更新,如果它。 这些键被安装到.ssh。 它工作很好。 我可以通过调用传递图像名称的脚本作为参数来更新图像中的代码。 唯一的问题是Config.Cmd总是变成/scripts/git-clone-update.sh。 任何想法如何保持原来的Config.Cmd? 在docker图像中克隆私人ropo的最佳做法是什么? 谢谢

轻松移动环境:deploybot,docker或手动grunt / gulp设置?

使用一个简单的环境设置为一个WordPress的网站,一个本地AMP堆栈的发展,暂存环境审查/签退,最后一个生产环境,什么是最好的select快速移动环境? local (dev) > staging > development 不同的开发者应该能够很容易地模拟网站(使用类似的服务器设置),然后在完成某个function时进行git操作。 (然后一个travis基于运行testing的提交开始) 然后,它必须很容易地移动到登台服务器,以便客户可以审查最终发布到生产。 阅读Docker的文档符合要求,但这似乎是一个矫枉过正。

使用Makefile获取最新的git标签

我有一个我用来build立我的docker形象的Makefile。 NAME = demo/docker-test default: build build: docker build -t $(NAME) . push: docker push $(NAME) 我想追加到我的Git标签,即build最新版本 build: docker build -t $(NAME):$(VERSION) . 所以如果我在Git v.1.2有3个标签, v.1.3 , v.1.4 VERSION就是v.1.4 。 这可能在一个Makefile? 如果是的话,我从哪里开始呢?

如何在docker集装箱中使用私人gem(GemFury)?

我试图运行一些ruby脚本来自动出口。 由于这些远程运行,我们在Docker容器中构build它们并将它们推送给iron worker。 我们使用GemFury来为这些脚本托pipe一些重要的私人gem。 为了保持GemFury的凭证不在Git中,我们使用一个全局的包configurationbundle config gem.fury.io MY_SECRET_TOKEN 。 我怎样才能设置捆绑的configuration,所以它会从GemFury拉入gem,而无需在源代码pipe理中显示?

Docker – 应用程序源代码更新

现在我知道你的应用程序的源代码应该使用ADD复制到Docker容器中。 这似乎是一个好主意,但是如果我希望能够更新我的应用程序源代码 – 一天两次,甚至更频繁呢? 最可行的解决scheme是将源代码保存在我的应用程序之外。 然后我可以保持机器运行,只需使用GIT更新源代码。 机器将被创build像这样: docker run -p 80:80 -v /home/adam/projects/docker-test/src:/var/www/html webserver 这意味着如果我从onprem服务器控制机器,但基础设施是在EC2上,每次打开网站时,文件都会被拉到互联网上。 什么是这个问题的最佳解决scheme? 我能否继续使用更新的源代码重新部署一个容器,但不停机?

在哪里保持与Docker / Docker-Compose一起使用的依赖关系(大文件或目录结构)?

作为开发环境的Docker设置的一部分,我使用Docker-Composepipe理以下内容: 基于mysql:5.7 MySQL实例(在docker-compose.yaml文件中称为database ) 基于tomcat:7.0两个Tomcat实例(称为manager和runtime )。 这两个依赖于数据库存在,这通过docker-compose提供的link工作正常。 作为容器构build的一部分,我将几个SQL脚本映射到数据库容器中,这些脚本在创build时加载到数据库中。 对于Tomcat实例,我需要在每个容器中部署一个单独的WAR文件: manager.war到manager和runtime.war到runtime 。 这些WAR文件的大小都是120 MB左右。 为了简单起见,我已经将WAR文件添加到用于pipe理docker-compose项目的Git项目中。 除了docker-compose.yaml文件和WAR文件之外,项目还包含SQL数据和一些我映射到相应容器的shell脚本。 目前我最大的问题是在哪里保留WAR文件,因为它们大大增加了Git仓库的大小。 由于我期望随着时间的推移对WAR文件进行更新(它们是在本项目之外创build/版本化的),所以我将不得不随时更新这些文件和更新的副本,进一步增加了回购的大小,这将使其变得困难让人们只要克隆回购。 如何解决这个问题? 我知道在Git仓库中保存二进制文件通常是一种不好的做法,但是我也希望保持文件靠近项目,所以使用这个文件的人不必开始search/下载文件,然后才能够用这个。 在Docker或Docker-Compose中是否有一个function可以帮助我pipe理这些“依赖关系”?

使用Jupyter与文件共享或安装的文件夹

我们如何在jupyter服务和其他服务(Google云存储或git存储库)之间同步笔记本? 这个问题的一些背景: 目前,我正在从Google的Datalab转移到自己的容器。 我的动机是更好地控制数据区域(Datalab Beta只在美国提供)和包,因为我想使用当前的Tensorflow版本。 基于Google的想法( 请参阅github ),我构build了自己的Docker镜像,并在Google容器引擎中的Kubernetes集群上运行它。 GCP包可以像我之前解释的那样安装。 Google使用一个node.js服务器来同步GIT和datalab实例 – 但是我不能使用EU中的一个自我部署的容器来运行它。 第二次尝试是GCSFuse司机 。 这个不适用于Kubernetes v1.0和Google Container Engine的非特权容器。 如此完整 我的Docker文件(基于Google的GCE Datalab图片): FROM debian:jessie # Setup OS and core packages RUN apt-get clean RUN echo "deb-src http://ftp.be.debian.org/debian testing main" >> /etc/apt/sources.list && \ apt-get update -y && \ apt-get install –no-install-recommends -y -q \ curl wget […]