Tag: 连续交付

Docker部署的持续交付,已经构build了映像

我想有以下的CDstream: push to master -> build new Docker image -> push image to Docker repo -> deploy (pull & run ) new image on server 对于build筑物的形象,我使用像处理所有expect部署的circleci云CI。 我知道我可以configuration云计算CI在我的机器上执行ssh部署(我需要在VPS上部署),但是我不喜欢给CI提供服务器login凭证。 另一个选项是成功构build/推送后,来自CI或Docker Hub Web挂钩。 但是在这里,我想知道哪个工具可以在此基础上做Docker的工作。 我现在唯一想到的就是创build自己的web钩子处理程序,使用普通的docker或swarm为我pipe理docker。

重build并重新运行DockerContainer

我正在试验Docker,并设置了一个Node App。 该应用程序在我的Gogs容器中的GIT Repo中。 我想保留在我的容器内的所有代码,所以在应用程序的根我有我的Dockerfile。 我想创build一个Shell脚本来自动重build我的Container并重新运行它。 这个脚本在GIT推送期间通过“webhook-container”调用。 Docker CLI只有一个构build和一个运行命令。 但是,如果一个图像或名称的容器已经存在,都会失败。 处理这个问题的最佳做法是什么? 备注:我不想保留主机上的应用程序源,只更新源代码并重新启动容器! 我喜欢这个想法,我的整个应用程序是一个容器。

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

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

厨师和docker工人

我有点困惑。 作为课程的一部分,我们应该使用Jenkins,Docker和Chef来build立一个CI和CD解决scheme,但是stream程将不会被指定。 我们一直在build立Jenkins,因此每创build一个git commit,它都会创build一个Jenkins的奴隶,它们为testing所需的特定容器创build一个子集,然后将其拆散并报告结果。 所以,今天一直在寻找有关使用厨师和Docker进行持续交付/部署的信息。 我看到的用例如下,在Chef中指定机器部署选项,每台服务器有多less台机器,数据库等等。 当Jenkins从站成功构build并testing应用程序时,是时候部署了。 删除任何旧的容器,并build立新的容器,处理厨师的configuration和其他必要的pipe理。 一直在四处寻找类似用例的信息,似乎没有太多关于它的信息。 一直与厨师提供泊坞坞厨师供应插件修补,但有关使用例如docker插件的信息是不是超级直观。 然后我偶然发现这篇文章( https://coderanger.net/provisioning/ ),它基本上不build议新的项目开始使用厨师提供插件。 有什么我不知道的是,这种用例不是那么受欢迎,甚至只是愚蠢的? 有没有其他插件,我已经错过了或另一个设置与厨师更适合? 提前欢呼!

在亚马逊ecs上的集装箱交货

我正在使用Amazon ECS在uat / production上自动部署容器。 什么是最好的方法来做到这一点? 我有几个前端客户端的REST API 我应该使用nginx将我的api容器打包在同一个容器中吗? 并与其他前端客户端做同样的事情。 或者我必须写一个大的任务定义,以汇集所有我的容器(db,nginx,php,api,clients):(但是这意味着我应该在每次push uat / prod时重新部署所有的基础设施 我很困惑。

什么docker图像用于离子CD / e2etesting? Ubuntu或只是节点?

我想为一个离子项目启用连续交付。 我将使用使用Docker镜像的Bitbucketpipe道 。 我混淆了哪个Docker镜像应该用于容器。 这是足够的节点图像还是我需要一个Ubuntu的图像? 我可能不得不创造我自己的形象,但应该是这个形象的基础。 在运行端到端testing之前,我将不得不运行一些命令。 例如: 从git master分支拉 npm安装 npm install -g cordova离子 凉亭安装 运行一个吞咽任务 运行量angular器testing 离子项目也作为一个webapp发布,我把它部署到Ubuntu 16.04服务器上(但是和ngnix一起服务),这让我觉得在dev和prod中拥有相同的环境是一个好主意。 所有这一切,我的Docker基础镜像应该是什么? 节点:硼 Ubuntu的:16.04 如果两个都是有效的选项不会比Ubuntu更快地构build节点映像?

Docker和Ansible如何配合实现Continuos Delivery / Continuous Deployment

我不熟悉configurationpipe理和部署工具。 我必须实施一个持续交付/持续部署工具,用于我曾经投入的最有趣的项目之一。 首先,我个人对AWS感到满意,我知道Ansible是什么,它背后的逻辑和目的。 我对Docker没有同样的理解,但是我明白了。 我经历了很多互联网资源,但是我无法得到大局。 我一直在挣扎的是他们如何融合在一起。 使用Ansible ,我可以将我的基础架构作为代码来pipe理; 构buildEC2实例,安装软件包…我甚至可以通过拉取代码,修改configuration文件和启动Web服务器来部署完整的应用程序。 Docker本身就是一个打包应用程序的工具,并确保它可以在你部署的任何地方运行。 我的问题是: Docker(或Ansible和Docker)如何扩展持续集成过程! 假设我们有一个源代码库,团队成员完成了一个function的工作,他们推动他们的工作。 jenkins检测到这一点,运行所有的验收/单元/集成testing套件,如果他们都通过了,它宣称它是一个稳定的构build。 Docker如何适应这里? 我的意思是,当团队推动他们的工作时,Jenkins是否必须拉取应用程序中编码的Docker文件源,构build应用程序的图像,启动容器并运行所有testing,或者运行经典testing一切都很好,那么它会从Docker文件构buildDocker镜像并将其保存在一个私有的地方? jenkins应该使用xyz标记最终的图像! Docker容器configuration: 假设我们有Jenkins构build的映像存储在某个地方,如何处理将相同的映像部署到不同的环境中,甚至是不同的configuration参数(Vhostsconfiguration,数据库主机,队列URL,S3端点等等)什么是最灵活的方式来处理这个问题而不破坏Docker原则? 这些configuration是否在构build时或者基于它的容器开始时支持在映像中,如果是的话,它们是如何被注入的? Ansible和Docker : Ansible提供了一个Docker模块来pipe理Docker容器。 假设我解决了上面提到的问题,当我想部署我的应用程序的新版本xtz时,我告诉Ansible将它从存储的位置拉出来,启动应用程序容器,那么如何注入configuration设置? Ansible在运行之前是否需要loginDocker镜像(这听起来令人费解),并且使用Jinja2模板和经典主机一样! 如果没有,这是如何处理?! 对不起,如果这是一个很长的问题,或者我拼错了一些东西,但这是我的想法。 我在过去的两周被封锁了,我无法弄清楚正确的工作stream程。 我希望这是未来读者的参考。 请阅读您的经验和解决scheme非常有帮助,因为这看起来像一个常见的工作stream程。 先谢谢你。 任何帮助深表感谢。

如何防止docker集线器上的docker图像被覆盖?

有没有办法阻止图像上传到docker集线器与现有的图像相同的标签? 我们的用例如下。 我们使用docker-compose文件将图像的标签作为版本号部署到生产环境。 为了支持回滚到以前的环境和幂等部署,有必要使某个标记的泊坞窗图像始终引用相同的图像。 然而,docker中心允许图像上传与现有图像相同的标签(他们覆盖旧图像)。 这完全打破了版本化图像的想法。 我们目前有一些解决方法,涉及我们的构build脚本,拉取图像的所有版本,并通过标签来检查覆盖不会发生等,但感觉好像还有更好的方法。 如果docker中心不支持这个,有没有一种方法来执行docker部署没有docker中心?

Docker – 从一个链接容器发出命令到另一个

我正在尝试使用2个Docker容器来设置一个原始的CI / CDpipe道,我将它们称为jenkins和node-app 。 我的目标是让jenkins容器在提交到GitHub 仓库时运行一个工作(完成了)。 该工作应该在node-app容器上运行deploy.sh脚本。 因此,当一个开发人员向GitHub提交时, jenkins接受提交,然后开始工作,包括自动化testing(将来),然后在node-app上进行部署。 jenkins容器正在使用最新的图像( Dockerfile) 。 节点应用程序容器的Dockerfile是: FROM node:latest EXPOSE 80 WORKDIR /usr/src/final-exercise ADD . /usr/src/final-exercise RUN apt-get update -y RUN apt-get install -y nodejs npm RUN cd /src/final-exercise; npm install CMD ["node", "/usr/src/final-exercise/app.js"] jenkins和node-app使用Docker Compose链接,并且docker-compose.yml文件包含(更新,感谢@alkis): node-app: container_name: node-app build: . ports: – 80:80 links: – jenkins jenkins: container_name: […]