Tag: 持续集成

可以使用持续集成工具的Docker机器吗?

我想要做的是:使用像CircleCI或GitLab这样的持续集成工具来部署到DigitalOcean液滴。 本地我可以使用Docker Machine来运行类似的东西 $ eval $(docker-machine env my-droplet) 连接到一个已经创build的液滴,然后docker run foo 。 是否有可能通过传统的deploy.yml文件做这样的动作? 假设我有一个digitalocean-access-token和一个已经创build的液滴。

为.net集装箱化应用程序创build一个CIpipe道

我的目标 正如标题所说,我正在尝试为将要在Linux中的dockerized环境中运行的大量.NET服务组装一个CI(持续集成)pipe道。 我组织中的开发人员目前使用C#和VSO / TFS,所以我们试图迁移到Linux平台,同时保留我们当前团队的工具/技能。 我在各种论坛上看到很多post,但一直没有find解决我的具体需求的任何东西 – 所以如果这之前已经回答 – 我将非常感激链接! 到目前为止,我已经做了以下试图certificate我能做些什么: 用unit testing创​​build一个C#项目。 将项目检入源代码pipe理(TFS在线) 在Linux上运行Jenkins 设置Jenkins来倾听源代码控制。 当检测到新代码时,使用MSBuild插件在Jenkins节点(这是Windows机器)上启动构build 如果构build完成而没有错误,则使用MSTest插件运行与C#项目关联的所有unit testing。 所有上述似乎工作得很好 – 这是我正在努力的下一个位。 我想做的事 现在我已经完成了一个构build并在代码中进行了testing,我希望能够执行以下操作(高级别): 将源代码从Jenkins窗口节点移动到Jenkins Linux节点 在Linux节点上构buildDocker容器 将Docker容器推入存储库 我曾经尝试过 我正在Jenkins使用自由式项目来编排上述内容。 (不知道这是不是正确的select – 但似乎没有打破汗水拉/build立/testing。) 我想,为了从Windows节点到Linux节点的代码,我需要推入到一个GIT仓库。 我的要求是,这是一个本地GIT,但如果这是不可能的,我愿意在线使用私人GIT。 我尝试build立一个Gogs-GIT本地存储库,但Jenkins并没有使用同样的语言。 在任何情况下 – 我一直无法弄清楚如何使用任何Jenkins插件将代码作为从我的Windows节点发布到不同的源代码控制环境中的后构build事件,而不是从第一个地方。 我现在想,也许我需要执行某种自定义脚本(也许在Windows节点上的批处理脚本)来推入GIT,然后有一个单独的Jenkins作业,侦听推送到GIT存储库启动Linux处理。 我对Linux和Jenkins都很新,所以任何帮助或指针都会很感激。

Dockerregistry – 行业标准

我一直在试图找出Docker注册pipe理机构是否有任何行业标准,即如何定义生产和分期领域,遵循什么版本模式等,但是还没有find任何文档或博客。 dockerregistry中是否有任何指导原则或最佳实践? PS – 我正在使用jfrog的artifactory。

Azure应用服务+ Docker自动部署?

我已经安装了一个Azure应用程序服务来托pipeDocker容器。 这一切都运行良好 – 指向一个私人的Docker存储库/图像,使用latest标签。 我希望能够从我的CI服务器发布一个新的Dockage镜像到latest标签下的Docker仓库,并以某种方式触发应用服务来获取latest映像的变化。 似乎我可以通过修改应用程序服务上的应用程序设置并保存它来触发更改 – 但这似乎不是正确的方式来处理它。 有这种部署的最佳做法吗?

在Docker容器中无法访问Spring Boot API

我试图在我的机器上的泊坞窗容器中运行我的应用程序,但遇到问题,我的任何端点。 (一切工作正常,当我在本地运行) #DOCKERFILE FROM tomcat:latest RUN mkdir -p /app/fleet-service WORKDIR /app/fleet-service COPY /target/fleet-view-1.0.0.war /usr/local/tomcat/webapps/fleet-view-1.0.0.war EXPOSE 8080 图像生成良好,我用下面的cmd运行它: docker run –rm -p 8080:8080 <imagename> 我很困惑,因为应用程序部署成功,因为我可以看到dockerterminal中的日志。 没有错误,数据库连接有效。 但是,当我去: <docker-machine-ip>:8080 -> i get the tomcat website saying that tomcat is running <docker-machine-ip>:8080/api/vehicles/ -> should return data as it does when i run it locally but instead i get […]

如何将GitLab CI与定制的Docker镜像配合使用?

我做了一个简单的Dockerfile : FROM openjdk EXPOSE 8080 并使用以下内容构build图像: docker build -t test . 我安装并configuration了一个docker GitLab CI runner,现在我想用我的test映像来使用这个runner。 所以我写了下面的.gitlab-ci.yml文件: image: test run: script: – echo "Hello world!" 但令我失望的是,没有find我可以在我的机器上使用的本地test映像。 Running with gitlab-ci-multi-runner 9.4.2 (6d06f2e) on martin-docker-rawip (70747a61) Using Docker executor with image test … Using docker image sha256:fa91c6ea64ce4b9b44672c6e56eed8312d0ec2afc80730cbee7754bc448ea22b for predefined container… Pulling docker image test … ERROR: Job […]

具有独特名称的Dockernetworking

我正在使用Docker用户定义的网桥和networking范围的别名来隔离我的testing。 在CI服务器上有可能多个版本的同一个testing是并行运行的。 如果我使用硬编码的networking名称,它可能会干扰。 为了避免这种情况,我生成了唯一的networking名称(由uuidgen),并在testing过程中使用它。 TEST_IMAGE_ID="$(docker build -q .)" UNIQUE_NETWORK_NAME="$(docker run –rm $TEST_IMAGE_ID uuidgen)" docker network create –driver bridge "$UNIQUE_NETWORK_NAME" CONT_B_ID="$(docker run -d –rm –network=$UNIQUE_NETWORK_NAME –network-alias=proxy -v ${WORKSPACE}/nginx.conf:/etc/nginx/nginx.conf:ro nginx:alpine)" 我的问题: 这里最好的做法是什么? 为什么Docker不能创build一个用户定义的networking而不指定它的名字,比如它对图像和容器呢?

持续集成 – 对构build代理敏感的文件和依赖关系

我想要设置多个CI任务来执行以下任务: 从VCS中检出项目源(由代码更改触发) 下载敏感configuration文件(未签入VCS) build立项目 部署项目 我正在使用TeamCity,但我认为其他地方也适用相同的概念。 我设置了CI服务器和多个构build代理(作为Docker容器在同一台服务器上,或者可能分散在其他计算机上)。 我的理解是,这些构build代理都是以相同的方式进行最低限度的configuration,并且可以随时构build任何项目。 我的问题是如何处理敏感文件。 我的许多版本都需要保存敏感信息/证书的属性文件,而不是签入VCS。 我正在考虑拥有一些全球性的资源库(例如AWS S3),我可以在这里对敏感文件进行encryption,并在需要时让构build代理将其下载。 但是, 这需要所有构build代理都安装AWS CLI软件,以便他们可以下载这些文件。 如何将具有敏感信息的文件传递给分布式构build代理? 如果我继续使用全局存储库,那么我需要在构build代理上安装AWS CLI。 虽然我的问题是关于AWS CLI的,但我可以想象其他项目在构build之前需要安装其他软件。 如何设置构build代理环境,以便可以构build具有不同依赖关系的多个项目? 我是否使用构build所有项目所需的全部软件来设置所有构build代理? 就像一个普通的Docker镜像或者什么东西? 这似乎是一个坏主意,因为它将构buildconfiguration放在不同的地方(TeamCity服务器和一个单独的Dockerfile)。 这也可能导致一个单一的,通用的Docker镜像。 还是我创build一个构build步骤(每个项目),下载并安装一个项目所需的软件? 这似乎是一个更好的主意,但是我每次构build时都要安装软件(如AWS CLI)。 无论该构build代理是否已经安装了该软件。 我也需要担心来自多个项目的软件冲突。 我必须添加清除步骤来删除软件吗? 或者我应该考虑为构build每个项目制作一个Docker容器? 还有另一种方法吗? 提前致谢!

使用docker容器来构build另一个docker图像

我把我的竹剂放到docker集装箱里,这样我就可以configurationpipe理和铺设,以及所有其他的令人敬畏的东西,但是我遇到了障碍。 我的竹代理做的事情之一是build立其他应用程序的docker图像。 我还没有能够把这个function放到我的docker竹代理。 我已经阅读了关于docker工人的博客文章http://blog.docker.io/2013/09/docker-can-now-run-within-docker/ 但是我不希望能够在docker容器中运行docker镜像,我只想构build镜像并将其上传到registry中。 我已经尝试过主pipe的实现,以便与我的代理一起启动docker守护程序,但是这也certificate是困难的。 我在centos6.4上运行 我想要达到不可能的目的吗? 有没有另一种方法来解决,我没有看到? 提前感谢任何帮助

docker化jenkins是一个不错的select?

正如标题中提到的,我想到一个docker化的jenkins。 我有一个运行所有testing的运行容器,但现在我想运行一些部署工作。 文件(.py,.conf,.sh)将被复制到由其他容器(app容器)装载的文件夹中。 正如我看到的一些build议不要使用docker工人。 现在我想知道是否应该继续在容器中使用jenkins(所以我必须find一种方法来运行部署脚本),或者更喜欢将它安装在服务器上?