Tag: 持续集成

通过在本地运行自己的IP来持续集成Docker镜像?

我正在尝试谷歌容器引擎或kubernetes,并部署了一个简单的平均值堆栈。 我正在做以下步骤在我的本地机器部署新的变化。 docker推送命令需要很多时间(和我的networking速度不是很好) docker build –no-cache -t gcr.io/$PROJECT_ID/my-app:v7 . # below command takes a lot of time to push gcloud docker push gcr.io/$PROJECT_ID/my-app:v7 kubectl set image deployment/my-app-pod my-app-pod=gcr.io/$PROJECT_ID/my-app:v7 问题分两部分: 我怎样才能优化这里的持续集成 – 尤其是docker推送命令需要一个小时? 我如何在本地机器上用自己的IP运行docker映像 – 因为我正在做一些小改动,并testing一个行为(session,cookies),这只能通过external-ip而不是在http:// localhost上重现。 回答这将有助于问题的第一部分。

使用jenkins – build设环境

我有一个Jenkins服务器负责构build和部署我所有的微服务。 但是,这些微服务中的每一个都需要用于构build和部署的不同版本的库。 在Jenkins中分离这种构build环境的最好方法是什么? 是使用奴隶吗? 有没有涉及Docker的解决scheme?

如何设置持续集成(Ansible)?

我们有一个相当大的代码库,我们使用Ansible来部署我们的服务器。 我现在想要开始持续集成,我也在考虑使用Ansible。 我认为我们可以做到这一点的方式是,当合并开发或掌握一些东西时,在一些外部服务器(自我pipe理的Jenkins服务器或某种商业服务)上使用webhook,然后在DigitalOcean上使用api生成一个服务器,运行可以设置的东西(从多个仓库中提取并创buildtesting数据),然后运行unit testing。 我想使用Ansible的原因是因为它确保我们所拥有的环境与我们的生产服务器完全相同。 但是我不确定Ansible是否是正确的工具,因为我认为Ansible通常是一种编排工具。 我当然也可以设置一些Docker文件,但这意味着我需要保持Dockerfile和Ansible脚本的同步(并且我们将在未来几个月内将LOT更改为我们的设置)。 任何人都可以分享一些build议吗? 我应该使用Ansible,Docker,还是有其他更好的select? 我可以设置一个Jenkins服务器,但我更愿意使用商业服务,因为我想避免需要pipe理Jenkins服务器。 而且我也宁愿避免使用DigitalOcean,只是把持续集成全部放在一个平台上(Jenkins /其他?)。 我环顾了各种商业CI平台,但是我不能真正find使用Ansible进行testing的任何事情。 所有的提示,欢迎!

Docker化的gitlab使用主机docker到CI

我目前正在学习gitlab-ci,并进行部署。 我的gitlab实例在Docker容器中运行,我想使用主机的docker来构build和部署映像。 有这样的方法来做到这一点?

持续集成 – 只部署更改的组件

我在java中有以下组件,每个都是一个单独的maven模块: 尤里卡服务器 Zuul代理 微服务#1 这些组件中的每一个都是独立的Docker镜像,它们共享一个相同的Git仓库。 jenkins也可用。 我的问题是,当更改单个组件来重builddocker镜像并部署它,而不是重新部署所有东西时,这是可能的。 CI的常见做法是什么? 我想过这个,可能的办法是将模块分离到不同的git仓库中,并在主项目中使用git子模块,有没有更好的方法来实现这个(maven / jenkins或docker)?

在Docker中使用共享基础映像时select不同的代码分支

我正在为一个代码库提供多个应用程序。 我创造了三个图像; app-base : FROM ubuntu RUN apt-get install package COPY ./app-code /code-dir … app-foo : FROM app-base:latest RUN foo-specific-setup.sh 和app-buzz非常类似于app-foo 。 这目前工作,除了我想能够为特定的代码分支和版本构build版本的app-foo和app-buzz 。 这很容易做到这一点,为app-base和适当的标记,但app-foo和app-buzz不能dynamicselect该标签,他们总是固定到app-base:latest 。 最终,我希望Jenkins自动生成这个构build过程。 我可以dynamic地重新编写Dockerfile,或者没有三个图像,并且每个应用程序只需要两个几乎不相同的Docker文件,这些文件需要手动同步(稍后增加到4或5)。 但是,这些解决scheme中的每一个都有明显的缺点 过去我曾经见过很多关于INCLUDE语句或dynamic标签的讨论。 似乎没有任何东西。 有没有人有一个工作,干净(ISH)解决这个问题? 只要这意味着Dockerfile代码可以跨图像共享,我会很高兴。 如果这也意味着共享图像层不需要为每个应用程序重build,那么更好。

如何通过Web界面为多个实例部署Docker集群?

我有我的应用程序的几个实例,如开发支架,testing台,演示台和几个生产站。 我的应用程序是一个微服务的集群,打包在docker容器中,由docker-composepipe理。 我需要能够方便地将部分版本的应用程序部署到多个展位。 我的问题是:我应该select哪些工具来实现这个function? 理想情况下,我想要有一个网站界面,其中一个button“部署”为一个立场和我的应用程序的版本的input字段。 我们使用Teamcity来构build应用程序,我们可以使用它来持续交付,但是我正在寻找更方便和专业的工具。

CI / CD中的Docker镜像仅适用于多主机?

我们是在Docker开发单个主机应用程序的两个人,我们希望减less一些testing时间并使用CI / CD。 许多文章都是关于使用付费服务来运行testing和构buildDocker镜像,然后部署镜像。 在多宿主环境中,我可以看到部署映像的优点,但单个主机又如何呢? 在单个主机案例中部署映像只是一个额外的复杂层? 更新 我们现在正在做的是推动到Git的变化,然后手动testing应用程序,如果它是好的,然后合并到掌握和login到生产服务器,并执行git pull && docker-compose build 。 当我谈到在问题中部署Docker镜像时,部署在产品上几乎就是docker pull 。 关键的区别是docker图像不是在生产服务器上构build的,而是在别的地方。 这是我问的。 当仅在单个主机/机器/服务器/节点上部署图像时,是否有将图像构build在其他地方的优点?

GitLab CI:如何拉动特定的docker集装箱进行部署

我正在手动在gitlab中进行生产部署。 我正在使用docker集装箱。 点击pipe道列表中的“播放”button应该进行部署。 但是,如何获取所选容器的版本? 做这个脚本总是试图拉latest版本,这不应该。 我想拉“选定”的容器。 deploy_prod: stage: deploy script: – docker pull $CI_REGISTRY_IMAGE # here selected version is missing # … when: manual environment: name: productive url: https://example.com only: – master

如何在Jenkinspipe道中获取Maven版本

我正在与Jenkins一起创buildCIpipe道。 需要使用项目的Maven版本来标记Docker镜像,例如0.0.1-SNAPSHOT 。 虽然,基于这个Jenkins问题 ,maven版本被暴露为POM_VERSION ,但它似乎只适用于“Maven项目”。 我试图在Pipeline的Jenkins文件中使用这个variables作为${POM_VERSION}并且它不能识别这个属性。 获得版本号的最佳方法是什么? parsingpom.xml并用bash脚本grep版本并在Jenkinsfile调用它?