Tag: 连续集成

我怎样才能使用gitlab和/或docker工具为我的networking应用程序?

我目前正在build设一个大学项目的Web应用程序。 我正在使用LAMP堆栈和运行CentOS的数字海洋服务器。 我对git比较陌生,一直在阅读Gitlabpipe道,跑步者,环境和集成docker容器,并且无法理解它或者区分哪些对我有用。 我的大学有一个Gitlab服务器设置,供我们托pipe我们的项目库,我的问题是,是否有可能推到掌握并让Gitlabtesting并将代码部署到数字海洋服务器? 谢谢。

开发与jenkins&portainer容器运行ci服务器dockerconfiguration运行导致CPU软locking

一些背景故事告诉你我想要完成的事情(也许我采取了错误的做法,有人有一个更好的主意来解决我的问题): 我正在尝试构build一个CI服务器,用于自动化构build,testing和部署我的一些客户的个人项目或项目。 服务器应该运行一个无头的Ubuntu Linux服务器安装,docker,docker-compose,Jenkins(在Docker容器中),Portainer(在Docker容器中)。 Jenkins将构build项目,运行testing并按configuration部署它们。 硬件: RYZEN 7 1700 微星B350M PRO-VDH,Sockel AM4,DDR4,HDMI,DVI,D-Sub 1x M.2和6x USB 3.1 Gen1 MATX 2 x Ballistix Sport LT BLS16G4D240FSC 16GB单DDR4 2400 MT / s(PC4-19200)DIMM 288针内存 OS: 经销商ID:Ubuntu 说明:Ubuntu 17.04 发行:17.04 代号:zesty 软件: Docker版本17.09.1-ce,build 19e2cf6 docker-compose版本1.16.1,build 6d1ac21 jenkins的configuration,我想通过试验和错误的卷挂载。 也许我犯了一些可怕的错误: cat docker-compose.yml version: 2.1 services: jenkins_servo: build: ./jenkins_servo restart: always volumes: – […]

docker图像是否与代码捆绑在一起?

我们正在构build一个SaaS应用程序。 我没有(现在 – 对于这个应用程序)可用性的高要求。 它主要是在特定的时区使用,仅用于商业目的,所以按计划在早上3点重新启动应该不是什么问题。 这是一个运行在fastcgi服务器的单声道的ASP.NET应用程序。 由于安全原因,每个客户都会部署自己的应用程序。 这将使用Docker容器来完成,在前面的一个Nginx服务器上,根据URL分配请求。 如何部署它的可能方式是我的: 只用fcgi服务器创builddocker镜像,并从挂载点运行代码 用fcgi服务器和代码创build一个docker镜像 看起来好像是 更新代码更容易,因为docker容器可以继续运行 configuration可以与代码捆绑在一起 我可以很容易(如果我想要)为特定的客户添加小的变化 看起来好像2 一切都在一个图像中,不需要乱用额外的文件,只需将其拉出并运行即可 缺点1。 除了正在运行的容器外,还有很多客户的文件夹 缺点2。 configuration不能在图像(或可以吗? – 我应该创build具体的图像,每个客户的configuration?)=>还为每个客户额外的文件 更新一个容器比较困难,因为我需要重新启动它 – 但是一开始就说过了,但并不是什么大事 现在 – 第一年 – 客户数量less,需求低时,任何解决scheme都足够好。 我正在看 – 与100多个客户合作的是什么? 也为了将来我想为这个项目设置CI,所以我们不需要手动更新所有的客户实例。 Docker镜像可以有自动构build,但是不能确定就足够了。 我的担忧基本上是 – 哪个解决scheme不那么混乱,可能更容易自动化? 我找不到任何Docker的最佳实践,它涵盖了类似的情况。

如何configuration广场构build容器的DNS?

是否有可能configuration的汇集构build容器的DNS。 我知道有一个build_args:与build_args: -image-resource的参数,但我无法得到它复制以下docker生成参数 – –dns=IP_ADDRESS… 有没有人在pipeline.yml中做过类似的事情?

如果Docker容器容器退出,则使Jenkins构build失败

我有一个工作,将应用程序部署到Docker容器中,构build成功,Docker容器启动。 让我们说,10分钟后docker集装箱退出(下),我该如何处理? 我不认为保持这个工作是一个好主意。 我想要一个像Docker到Jenkins的触发器。

Jenkins – Docker集成 – 使用Jenkins构buildDocker镜像并推送到registry

我目前正在将Docker与Jenkins集成在一起,目前我正试图弄清楚下面的stream水线: 每当在GIT中更新Dockerfile时,触发一个Jenkins作业来执行以下操作 构buildDocker镜像 项目清单 testing,validationDocker镜像 版本图像 – 产品,testing等 将图像推送到registry 如果图像不是build立的,有一个适当的机制来获取日志 从我的研究中,我发现我们有两个不同的Jenkins插件用于Docker集成 – 构build步骤插件和Docker构build发布插件。 据我所知,我看不到任何插件或工作stream在将其推送到存储库之前对其进行testing。 既然我们从头开始这样做,我想知道最好的尝试和testing工作stream程。 任何帮助赞赏。

在docker环境中使用命令行应用程序的最佳方式是什么?

为了编写通过端口通过networking暴露的服务( -p 5000:5000 ),docker提供了各种帮助(例如docker-compose )。 我正在寻找的是一种在docker集装箱中提供某些二进制应用程序作为服务的方法。 例子是: 编译器(例如gcc) 生成器(例如用于协议缓冲器) … 运行一个命令 我目前的做法是有一个小的shell脚本传递参数,负责映射当前目录: runbox(){ current_dir=${PWD##*/} docker run –rm -it \ -v ${PWD}:/home/dev/${current_dir} \ -w /home/dev/${current_dir} \ box:latest \ /bin/bash -c "$@" } 使用它看起来像这样: runbox "g++ –version" 与本地运行相比: g++ –version 组成多个命令 现在让我们说,我有这样的服务,我怎么把它们组合起来,使它们都可以在另一个容器中使用(例如在一个ci上运行)? Services running in Docker containers +———————+ | | +———+ | CI Docker Container +—–> | […]

Robot Framework和CI,在容器中运行或不运行

在开发集装箱化的微服务时,设置Robot Framework项目的最佳实践是什么,并将其作为持续集成pipe道(Jenkins)的一部分进行集成? 可以在Jenkins从站上安装Robot Framework,还是在从站上运行的容器中运行Robot Framework更好?可能是重新启动容器并为每个构build安装testing数据? 如何组织Robot Framework项目? 用户界面的验收testing应该包含在同一个存储库中,还是作为一个独立的项目? 后者似乎更加模块化,因为用户界面可能依赖于各种后备服务,并且如果增加更多的服务,当它是一个独立的项目时,更容易协调testing阶段作为最后的工作。 但是,最佳做法是什么?为什么? 在哪里我可以find完整的教程来解释TDD与集装箱化微服务的可行模式?

基于networkingIO的容器testing

我有一个docker容器更新我想testing的dynamicDNS。 问题是,我唯一的IO是networking。 我想我会嘲笑这种交互,例如与MockServer ,但是我不知道如何编写实际的testing用例。 我是以这种错误的方式去做还是有一些testing框架允许这种黑盒networkingtesting? DNS更新本身是一个简单的bash脚本,其步骤如下: 获取外部IP 如果IP更改,则将其发送到DNS API。 模拟服务器然后需要返回IP,并在第二次后更改。 testing用例将会看看第二个请求是否被执行。 为了完整起见 ,实际的项目是docker-entrydns ,我正在寻找一种方法来testingTravis CI或其他一些与GitHub协同工作的CI工具。

设置多个Docker容器和MongoDB以在CircleCI中运行

我正在尝试为一组Rails服务应用程序设置一个连续的集成stream程,这些应用程序通过端点相互通信。 我们的想法是configurationCircleCI,以便在testingstream程被触发时,它将为每个应用程序下拉预configuration的Docker镜像,为每个应用程序启动Docker容器,然后运行一个testing套件来testing全stream程集成从一个应用程序通过其他。 其中一个服务应用程序使用MongoDB,所以它还需要与CircleCI自动安装的mongodb进行通信。 stream程应该是: client_app -> service_app -> mongodb但是,我有问题获取容器连接。 client_app的Dockerfile会安装Ruby和所有的依赖项,将这个repo添加到图像中,然后运行: RUN bundle install EXPOSE 3000 CMD ["bundle", "exec", "rails", "s", "-e", "development", "-p", "3000"] 然后,service_app的Dockerfile也一样 RUN bundle install EXPOSE 8080 CMD ["bundle", "exec", "rails", "s", "-e", "test", "-p", "8080"] 这两个Dockerfiles都存储在我们的私人Docker仓库中。 我已经在本地构build并拉出了这些Docker镜像,并确认它们正确启动。 在CircleCI上触发stream程时,我使用circle.yml来下拉每个图像。 这是我的circle.yml(应用程序名称已更改): machine: services: – docker dependencies: pre: – sed "s/<EMAIL>/$DOCKER_EMAIL/;s/<AUTH>/$DOCKER_AUTH/" < .dockercfg.template > […]