Tag: git

Git的Dockerfile策略

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

Docker将一个variables传递给运行git clone的shell脚本

我正在创build一个Dockerfile,作为这个文件的一部分,我想让最终用户可以select通过他们的git仓库。 我看了这个SOpost ,还有一些其他的网站,但是我坚持使用git clone语法。 git clone命令返回一个错误,因为作为其一部分的variables在docker build阶段不包含值。 我有这个名为gitclone.sh的bash脚本 #!/bin/bash git clone $1 /app 并在我的Dockerfile我有这一行: RUN ./gitclone.sh $LOCATION shell脚本具有正确的权限来运行,并且在从容器内运行它时起作用,因为我将一个实际的存储库传递给它。 在Docker构build阶段,我得到以下错误: 致命的:仓库'/应用程序'不存在 该目录在那里,但$1是空的命令不起作用。 问题我如何使Dockerfile工作? 我想要的所需输出: docker run -e LOCATION=https://github.com/something.git -d jwknz/pg02 更新更改我的Dockerfile以包含CMD ["../gitclone.sh","$LOCATION"]而不是RUN ./gitclone.sh $LOCATION不解决它。 Dockerfile将生成,但容器在运行docker docker run命令后停止。

私人gem没有安装在docker上

我正在尝试与docker运行rails应用程序。 github的ssh url安装了几个gem,如下所示: 的Gemfile gem 'swagger-docs', :git => 'git@github.com:xyz/swagger-docs.git', :branch => 'my_branch' 我已经在Docker中添加了keys ,可以克隆所需的repo并从git安装gem。 Dockerfile RUN mkdir -p /root/.ssh COPY ./id_rsa /root/.ssh/id_rsa RUN chmod 700 /root/.ssh/id_rsa RUN ssh-keygen -f /root/.ssh/id_rsa -y > /root/.ssh/id_rsa.pub RUN ssh-keyscan github.com >> /root/.ssh/known_hosts 当我构build它(其中包括bundle install ),一切顺利,图像成功构build。 但是,当我运行docker-compose up ,它会给出以下错误 /usr/local/bundle/gems/bundler-1.9.2/lib/bundler/source/git/git_proxy.rb:155:in `allowed_in_path': The git source git@github.com:xyz/swagger-docs.git is not yet checked out. […]

.gitlab-ci.yml中的多个Docker镜像

这是我的问题与GitLab及其集成CI服务的设置。 我有一个当前的GitLab 8.1。 和一个支持Docker的gitlabci-multi-runner(0.6.2)。 在扩展ubuntu:精确的图像以包含git和build-essentials (现在命名为precise:base )之后,我得到了下面的.gitlab-ci.yml : image: precise:base before_script: – apt-get install –yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev – apt-get install –yes libarchive-dev liblzma-dev build: script: – mkdir build/ – cd build – cmake -D CMAKE_BUILD_TYPE=Debug ../ – make 现在我的问题是如何在不同的图像上包含更多的工作? 因为我需要检查代码是否在Ubuntu Precise,Ubuntu Trusty,CentOS 6,CentOS 7等不同的操作系统上编译(以及后来的作品)。为了减less工作量,我认为最好的方法是提供不同的Docker镜像作为基础。 现在的问题是, .gitlab-ci.yml是如何支持这个的?

在OS X和DigitalOcean上使用相同configuration的MEAN栈docker容器最简单的设置是什么?

我正在玩一个MEAN JavaScript项目。 (mongoDB + angular + sails.js + node.js)由于我很多时候离线,我想使用boot2docker让我的开发环境在OS X笔记本电脑上的Docker容器中运行。 “生产”(不是实际的生产,只是我部署给朋友展示的地方)是一个运行Ubuntu的数字海洋液滴作为主机,希望是相同的docker集装箱。 我期望环境不会经常变化,我可以继续使用git push / pull来推动代码更改。 除了我上面描述的以外,我还需要什么吗? 我是否需要stream浪者,例如部署那个docker集装箱,或者这是一个矫枉过正的? docker能指定我所有的需求,那就是node.js,sails等的正确版本吗? 有没有现成的容器,我可以重用或修改,而不是从头开始?

在构build/运行时将参数列表传递给docker

我正在写一个dockerfile,我想要下载一套不断变化的git仓库:repo1,repo2,repo3。 在图像构build或容器运行时,我应该如何将这些URL /string提供给dockerfile? 我知道可以通过使用ARG指令和使用的参数 docker build –build-arg <var-name>=<value> 但是当我有一个任意长度的参数列表时会发生什么? 非常感谢。

在部署到数字海洋时,Dokku推动导致断pipe

我感觉这个问题归根结底是对SSH密钥的一个根本的误解,但是我似乎无法确定为什么我不能再把git push dokku master给我在Digital Ocean上的Dokku + Docker设置。 我跟着这个教程开始时,我最初设置我的液滴,我能够部署到Dokku就好了,直到我戳到容器中,并以某种方式瘫痪docker和/或Dokku(仍试图了解这些以及… … )。 我怀疑这是不可挽回的,但我变得不耐烦,所以我只是抹掉了整个水滴,并从头开始教程。 然而,这一次,把所有的东西都设置完全相同,我可以通过SSH进入“root@mydomain.com”,但是我不能推到Dokku。 相反,在等待永恒之后,我得到: failed: Broken pipe fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 检查/var/log/auth.log我看到一个会话确实得到build立: Jan 8 00:56:39 localhost sshd[19559]: Accepted publickey for dokku from 79.113.124.516 port 56067 ssh2 Jan 8 00:56:39 localhost […]

我怎样才能让docker-compose从远程git仓库build立一个映像?

Docker-compose允许您使用预先存在的docker镜像或从源代码构build。 对于构build选项, 官方参考需要 要么是一个包含Dockerfile的目录的path,要么是一个到git仓库的url 。 我想利用后一种情况,这样我就不必在我的项目中创build一个git子模块,或者在Docker Hub上注册一个新的存储库。 不幸的是,没有关于如何格式化URL的例子,我尝试过的每一个表单都被误认为是一个相对的文件path。 例如 — letsencrypt: build: https://github.com/letsencrypt/letsencrypt.git … 失败的错误: 错误:构buildpath/{MY_CURRENT_PATH}/https:/github.com/letsencrypt/letsencrypt.git不存在或不可访问。 我没有更多的运气与我试过的其他forms: git@github.com:letsencrypt / letsencrypt.git 混帐://github.com/letsencrypt/letsencrypt.git https://github.com/letsencrypt/letsencrypt

使用Docker进行Web开发的正确工作stream程

我今天开始学习Docker ,我已经能够在几个小时后基于ubuntu:14.04创build我的第一个自定义图像,通过试验Dockerfile构build和修改现有的图像并使用commit保存命令。 我的Dockerfile是以下内容: FROM ubuntu:14.04 MAINTAINER Davide Zanotti <***@gmail.com> ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install -y \ software-properties-common \ build-essential \ automake \ checkinstall \ git \ && add-apt-repository -y ppa:fkrull/deadsnakes && apt-get update && apt-get install -y python3.5 \ && cd /usr/bin && ln -s python3.5 python \ && apt-get clean […]

在Docker容器内使用bower,并使用私有的repo依赖

我试图在docker-compose.yml容器中运行bower install ,作为docker-compose.yml的命令传递 docker-compose.yml中的相关代码: services: assets: build: ./src command: > sh -c ' bower install –allow-root; ' bower.json具有以下依赖性: { "name": "projectname", "version": "version", "dependencies": { "remote-repo": "ssh://git@remoterepo.url/repo.git#branch" } } 这个远程回购是私人的。 主机具有正确的SSH凭据以从该远程端口获取。 我已经尝试从我的主机传递SSH凭据到docker容器4或5种不同的方式,但每次尝试都给我同样的错误信息: docker_1 | bower repo#branch ECMDERR Failed to execute "git ls-remote –tags –heads ssh://git@remoterepo.url/repo.git", exit code of #128 Host key verification failed. fatal: Could […]