Tag: 持续集成

如何将代码从Git更新到Docker容器

我有一个Docker文件试图将Django代码部署到一个容器 FROM ubuntu:latest MAINTAINER { myname } #RUN echo "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc) main universe" >> /etc/apt/sou$ RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tar git curl dialog wget net-tools nano buil$ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python python-dev python-distribute python-p$ RUN mkdir /opt/app WORKDIR /opt/app #Pull Code RUN git clone git@bitbucket.org/{user}/{repo} RUN pip […]

jenkins – 节点作为docker集装箱

jenkins节点是运行作业的docker集装箱。 在dockerized jenkins-node中运行的jenkins-job检查svn / git的项目,并在作业启动的其他docker-container中运行构build和testing。 在这个过程中,jenkins-work通过“docker run -v : …”文件/目录从签出的项目挂载到构build容器中。 这听起来像泊坞窗docker,但根据http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/泊坞窗docker是不擅长词。 使用推荐的方法(将主机docker-socket挂载到jenkins-node容器中),我正面临着构build容器中的挂载文件显示为空的问题。 我认为这是因为这些文件在主机中是不知道的(它们在jenkins-node容器内签出)。 提供–privileged标志没有帮助。 然而,“邪恶的”docker泊位者方法在这种情况下正常工作。 我在做什么? 是错的,还是docker工在这里要走的路?

.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是如何支持这个的?

使用docker进行持续交付的集成testing

我目前正在开发一个产品,公开一个REST API,最终将托pipe在云端。 我的技术堆栈是在maven之上的spring(启动,mvc,数据,testing等)。 我有集成testing来testing从我的API连接到testing数据库。 为了更好地testing我的产品在相同的环境下运行的生产,我想用一个容器来执行我的集成testing。 我的目标是遵循这个持续交付工作stream程: 编 运行unit testing 构build应用程序(jar)并将其部署到中央存储库 使用这个档案创build一个docker容器 启动容器(使用弹簧启动) 对正在运行的容器运行集成testing 运行性能testing 如果一切正常,请将此容器部署到中央存储库 部署这个相同的容器来刺激(只使用不同的命令行参数)。 这种方法的优点是具有相同的容器forms集成testing阶段到生产,这似乎是理想的,不是吗? 不过,我不知道如何使用我的源代码包中的spring mvctesting。 我怎么能用mockmvc做这样的事情? 它如何足够灵活地在开发中运行集成testing呢? 有没有人尝试过这种方法? 我在这里想念什么? 提前致谢

如何在连续交付中使用Docker?

在持续交付pipe道中使用Docker的最佳方式是什么? 构build的人造物应该是一个Docker镜像而不是一个Jar / War? 如果是这样,那将如何工作 – 我正在努力研究如何在开发中(在笔记本电脑上)无缝地使用Docker,然后让CI服务器使用相同的基本映像来构buildartefact。

如何创build重复资源和工作的汇合循环?

现在我有一个中继pipe道脚本,可以从一个git仓库更新dockerhub图像。 我基于下面的教程创build了这个。 我在这个git repo中有几个docker容器,我希望能够遍历它们来为每个不同的容器重复docker-image资源和image-update作业,使我的脚本更清晰,更具可读性。 这是我目前的脚本: — resources: – name: resource-docker type: git source: uri: https://github.com/$MYUSER/$MYREPO.git branch: master # docker-image resources – name: first-container type: docker-image source: repository: $MYUSER/first-container – name: second-container type: docker-image source: repository: $MYUSER/second-container jobs: # image-update jobs – name: first-container-image-update public: true serial: true plan: – get: resource-docker – put: first-container params: […]

照常运行testing对docker集装箱或dockerizetesting?

我是Docker的新手,正在读Docker。 这是一个很好的方式来testing自包含和可重复的标准化configuration系统(如果正确的话)。 但是,在我读过的所有内容中,似乎并没有太在意Docker容器如何进行testing。 docker用于“包含”基础架构和应用程序(代码)以便于testing(以及部署)。 但是有时testing代码库会很大,而且也不是那么简单。 而且可以有APItesting的testing代码库,UI的另一个testing代码库等等。 什么是或应该(在某些时候确定)testingdocker集装箱/部署您的应用程序/基础设施的标准做法? 应该: testing代码被部署为旧的常规方式,作为文件存储库你从某个地方拉,然后在Jenkins服务器/从属或一个本地主机上运行dev / QAtesting/debugging,testing的目标是在docker容器中的应用程序? dockerize整个testing代码库作为一个自包含的容器,然后使用该容器来启动/执行testing对其他具有应用程序代码/系统基础设施的容器? 结合testing作为单独的docker集装箱本身的一部分,以在需要时运行。 但是,我认为这只适用于真正与容器匹配的应用程序代码的unit testing。 集成,用户界面,系统级别testing与系统内的应用程序模块不同。 我能想到的唯一原因是使dockerizingtesting可能有用,它是一个包含所有您需要的testing和匹配testing基础设施(所有testing平台/语言依赖项)的容器,以便可以随时随地部署和运行testing匹配的应用程序代码容器。 使用户无需根据需要设置testing基础架构。 但似乎没有为docker化testing发表过这样的文章。

Jenkins或其他开源的CI是否有分布式系统?

我有一套组成分布式系统的全状态服务。 每个人都有一个Docker文件,可以构build它并运行其unit testing。 我需要检查他们如何以分布式方式互相交互。 要运行testing,我需要: 能够在不同节点上同时运行多个Docker文件,这将被视为单个testing运行。 能够在每个Docker文件的命令执行顺序中设置障碍。 换句话说,假设所有的Docker文件同时运行,我需要确保所有的文件在Y阶段开始之前已经完成了阶段X 能够停止任何节点的故障。 有没有Jenkins插件/扩展这样的操作,还是有任何其他系统或方法可以解决这个问题?

在特拉维斯CIcaching泊坞窗图像

是否有可能在特拉维斯CIcaching泊坞窗图像? 尝试caching/var/lib/docker/aufs/diff文件夹和/var/lib/docker/repositories-aufs docker /var/lib/docker/repositories-aufs文件与travis.yml中的cache.directories似乎不工作,因为它们需要root。

错误:注册跑步者。 禁止(检查注册标记)

我正在尝试为GitLab CIconfiguration一个新的运行器,并且不断收到错误信息 错误:注册runner … forbidden(检查注册令牌)runner = 4PzD2eFb PANIC:注册失败 也许你有networking问题 这是我运行的命令 gitlab-ci-multi-runner register Please enter the gitlab-ci coordinator URL (eg https://gitlab.com/ci): https://gitlab.com/ci Please enter the gitlab-ci token for this runner: XXXXXXXXXXXX Please enter the gitlab-ci description for this runner: [gitlab-test]: runner Please enter the gitlab-ci tags for this runner (comma separated): docker 这也发生在我运行命令时 sudo gitlab-runner register […]