Tag: 持续集成

从另一个控制容器

我find了很多关于docker集装箱(dockernetworking,docker链接)之间的沟通的文章。 但是我不知道是否存在一个从另一个控制容器的好习惯,比如运行和停止一个容器。 如果唯一的办法是在主机上使用其余的api,你有没有一个好的文章解释这个? 关于其余的API我发现太多的文章解释说,其中大部分是过时的。 为了精确我的意图,我有一个jenkins容器,build立和移动内置到另一个文件夹的第二个容器执行构build的代码。 基本上,移动之前,我想停止容器,重新启动后。 感谢帮助。

是否有可能使用Kubernetes Gitlab构build跑步者,以及如何?

我想为Gitlab上的CI选手设置Kubernetes。 我想使用Kuberntes进行持续集成并构build运行,而不是部署。 有人尝试,我怎么能做到这一点?

从docker复制到CI内部的主机

我想知道是否有可能以某种方式复制文件/文件夹从docker到主机,但复制本身是在docker执行forms。 原因是,例如: 提交文件回购 CI踢进 Docker安装依赖关系,build立网站文件 网站文件从docker复制到/ var / www / my-website(主机) 当我正在寻找一个解决scheme,我已经看到这个命令很多docker cp <containerId>:/file/path/within/container /host/path/target但是这是从HOST执行。 我想让整个过程自动化。 当然可能的解决scheme是不使用docker工具,而是直接使用SSH,这就是我现在正在做的事情,但这不是IMO的最佳select。 这里是我的.gitlab-ci.yml文件的例子,它将解释我想实现的目标。 image: ubuntu:16.04 build: stage: build script: – apt-get update – apt-get upgrade -yy – apt-get install hugo -yy # Static site generator – hugo build # Build the website – cp -R ./build/* /var/www/my-website/ # Copy to […]

如何知道我的程序是否在我的Docker中完全启动

在我的CI链中,我执行了一个“docker-compose up”之后的端到端testing。 不幸的是我的testing经常失败,因为即使容器正确启动,我的容器中包含的程序不是。 有没有一个优雅的方式来validation我的设置是完全开始之前运行我的testing?

docker工人build立一个模板Dockerfile

我正在使用特拉维斯build立文物(jar子和拉链),并将它们存储在bintray。 我想build立docker的图像,安装这些文物,例如在0.1.0版本的“应用程序”artefact,哈希abc123: FROM some-registry/oracle-jre7 RUN wget https://BINTRAY_USER:BINTRAY_API_KEY@dl.bintray.com/USER/REPO/app-0.1.0_abc123.jar -O /opt/app.jar EXPOSE 9000 CMD ["java", "-jar", "/opt/app.jar"] 每次我想创build这个docker图像的哈希(也许版本)将是不同的,我不想使用“最新”。 我可以使用travis中的模板轻松生成Dockerfile,但是我不确定如何构buildDocker镜像。 看来我不能在travis和quay.io和docker集线器上build立它,我没有一个API可以发布Dockerfile或存档(虽然你可以通过在quay.io ui做到这一点)。 我不想让Travis将Dockerfile提交到次要的git仓库,因为如果它们有多个分支,那么同步两个仓库就变得非常复杂。 我也可以像这样提交一个Dockerfile到主仓库,然后触发quay.io或dockerhub在artefact创build后(如果他们可以以某种方式评估git hash): FROM some-registry/oracle-jre7 ENV APP_VERSION 0.1.0 ENV APP_GIT_HASH $(git rev-parse –short HEAD) # this definitely doesn't work RUN wget https://BINTRAY_USER:BINTRAY_API_KEY@dl.bintray.com/USER/REPO/app-${APP_VERSION}_${GIT_HASH}.jar -O /opt/app.jar EXPOSE 9000 CMD ["java", "-jar", "/opt/app.jar"] 我目前正在尝试在ec2中放置docker主机,并让travisbuild立docker镜像并将其推送到bintary上的docker仓库,但我宁愿不必亲自pipe理主机。

自我托pipe的Drone CI不会将我的提交与Github同步

我有一个在Docker中运行的自行托pipe的Drone CI。 我使用https://registry.hub.docker.com/u/mattgruter/drone/图像来设置它,并且运行正常。 我连接了我的Github帐户并同步了我的回购。 但是,当我添加我的.drone.yml文件到一个回购,它不与我的无人机CI同步。 无人机只是说“添加一个.drone.yml文件,并提交触发构build”。 不知道我错过了什么。 我的.drone.yml只是看起来像这样。 我刚开始第一次使用Drone,所以不知道我是否在这个文件中遗漏了一些东西。 我认为这个图像是一个docker形象。 image: maven/maven:3.3.3-jdk-8-onbuild name: maps script: – mvn clean install

使用docker连续部署

我实际上正在使用一个堆栈,允许我在集成/部署系统中进行一些自动化操作。 其实我工作如下: 我推我的代码到一个github存储库 jenkins嗅回购,并build立软件,发射unit testing 如果unit testing(或其他types的testing,无论如何),它通知Rundeck部署到我的服务器(3在我的情况下)通过连接到SSH并告诉:“嘿家伙,你必须从github拉,新的软版本“,然后它重新启动有关的服务,我的软件现在是最新的 好的,告诉我,如果我错了,但似乎是一个很好的解决scheme吗? 然后,我想集装箱我的应用程序,现在,我有一些头痛。 首先解决scheme 事实上,我在想如下的东西: 推送到github jenkinstesting,build立docker形象 Rundeck推送到docker集线器,并告诉3台服务器从集线器中取出新镜像,并通过SSH运行 问题:它会运行在另一个容器(多个docker运行相同的图像,但具有不同的版本:() 第二种scheme 第二个解决scheme是: 推送到github jenkinstesting并告诉rundecktesting成功,而不创build“真正的构build”(只有一个testing) Rundeck通过ssh连接到正在运行的容器 ,并要求提取修改,然后重新启动docker容器 问题:我被迫在我的所有容器中使用ssh 我不知道如何绕过我的问题,什么是最好的解决scheme… 谢谢你的帮助

将docker部署到heroku,而不使用heroku docker插件

假设我正在开发一个在我自己的ci服务器上运行gitlab-ci shell runner的web项目来构builddocker并将其部署到heroku,并且我已经从gitlab和heroku(像gitlab-ci)中看过一些文档:using docker构build和heroku:与Docker构build和部署 。 我可以在不使用heroku-docker插件的情况下部署docker项目,这对我来说似乎不那么灵活吗? 不过我试过,下面的方法构build成功部署到heroku,但应用程序崩溃。 Heroku的日志说package.json中缺lessstart脚本,但是由于我正在部署docker项目,所以我不能做"start": "docker-compose up" ,可以吗? #.gitlab-ci.yml stages: – deploy before_script: – npm install – bower install dev: stage: deploy script: – docker-compose run nginx run-test – gem install dpl – dpl –provider=heroku –app=xixi-web-dev –api-key=$HEROKU_API_KEY only: – dev # docker-compose.yml app: build: . volumes: – .:/code:ro expose: – "3000" working_dir: […]

如何在Docker容器中运行JUnittesting,并在JUnit失败时让容器启动失败?

我想在Docker容器中运行Junittesting,如果testing失败,容器将失败。 在我的Docker文件中,我有: FROM maven:3.2-jdk-7-onbuild CMD mvn verify 我从一个运行docker compose命令的Go CI服务器踢它。 我所看到的是,这开始执行的后台线程,testing开始运行 – Go CI服务器得到一个OK – 就像maven进程已经开始。 testing结束运行有一些失败,但到那时,Go服务器已经显示一个绿色的“所有好”的状态。 部分问题是我需要EXEC命令,直到testing结束。 我的问题是: 如何在Docker容器中运行JUnittesting,并在JUnit失败时让容器启动失败?

有没有一种方法可以在Dockers上使用Windows的GUIfunction

我在想有没有一种方法来利用我的Windows基础桌面应用程序的Dockers概念。 我需要为每个构build运行GUItesting,性能testing,工作streamtesting等。 我目前所做的就是使用Hyper-V来预先设置不同的操作系统映像。 是否有一个简单的方法来实现使用docker概念相同的事情。 据我所知这可以实现非GUI应用程序。 但基本的桌面应用程序如何?