docker映像中安装软件_在整个环境中推广Docker映像

docker映像中安装软件

几分钟前,我在蒙克的WJAX下了舞台。 当我的同事Jan谈论这个惊人的客户成功故事AMADEUS时 ,我很高兴能对他的想法和观点进行一些阐述,并从开发人员的角度讨论如何使用OpenShift和Docker Images完成DevOps。

微服务和DevOps

如果您有数百个甚至更多的容器在生产中运行,那么一切不再仅仅是操作问题。 不仅因为每个人都是当今DevOps运动的一部分,而且主要是因为,如果我们希望能够从不可变和无状态容器提供的协同作用中获利,我们必须以不同的方式构建应用程序。 我在主题演讲中使用的示例几乎与之前的博客中使用的示例相同。 单个WidlFly Swarm JAX-RS服务,除了打印出包含环境变量和时间戳的JSON外,其他功能不多。 该系列所缺少的是跨环境的过渡。 尽管在OpenShift上有Veer Muchandi撰写的一些很棒的博客,但它们都假设您使用OpenShift方式来构建图像和应用程序。

让我们坚持朴素的Docker

我想展示一下,使用纯Docker镜像有多么容易。 因此,假设您有一个非常简单的环境设置:

环境
我们有一个开发环境,开发人员可以使用它来推送其更新的图像。 还有另一个QA环境,测试人员可能会发疯,甚至还有很多其他人。 我展示的示例仅使用了提到的两个。 您添加的每个其他env几乎相同。 让我们看看它如何与Maven,Docker和OpenShift一起使用

准备工作

在这种情况下,我在幕后使用了fabric8流浪图像。 只是因为他们总是采用最新的OpenShift构建,并且我想显示HEAD中已经存在的新可视化效果。 因此,安装vagrant和OpenShift二进制文件并启动openshift流浪者计算机。 我将内存和cpu设置调整为8 GB和4核。 确保公开内部Docker Registry,如先前的博客文章所示。 如果相应地设置了DOCKER_HOST变量,则可以开始演练。 该演示的录制将在大约10分钟内为您提供完整的演示。 是的,这没有声音。

个别步骤

有时,自己遵循各个步骤会更容易。 他们来了:

以管理员身份以密码admin登录到OpenShift

oc login https://vagrant.f8:8443 --insecure-skip-tls-verify=true

构建基于Maven的项目(也许只是git clone我的示例并使用它)

mvn clean install

运行本地WildFly Swarm胖子罐

java -jar target/swarm-sample-0.0.1-SNAPSHOT-swarm.jar

将浏览器指向http:// localhost:8080 / api / v1 / service并确认一切正常

在从应用程序构建Docker映像之前,请确保拉出jboss / base-jdk:8映像。 我不知道为什么,但是该插件似乎在解决问题。

docker pull jboss/base-jdk:8

现在构建您的Docker映像

mvn clean install docker:build

查看生成的Dockerfile

cat target/docker/development/swarm-sample/latest/build/Dockerfile

在OpenShift中创建一个新的开发项目。 此时,无论是同一实例中的项目还是其他环境中的项目,都没有关系。 当我要在笔记本电脑上进行本地演示时,这个决定很容易。 如果您想了解如何在物理环境中过渡,请从上方比较Veers帖子。

oc new-project development --display-name="WildFly Swarm Development Project"

为用户dev1和test1添加查看和编辑用户的权限

oc policy add-role-to-user edit dev1
oc policy add-role-to-user view test1

在OpenShift中创建质量检查项目

oc new-project test --display-name="WildFly Swarm QA Project"

授予test1用户编辑权限:

oc policy add-role-to-user edit test1

向系统帐户添加角色,以便能够将质量检查中的图像拉出开发环境

oc policy add-role-to-group system:image-puller system:serviceaccounts:test -n development

以dev1身份使用密码dev1登录并获取访问令牌

oc login https://vagrant.f8:8443 -u dev1
oc whoami -t

pom.xmlauthConfig部分中更改令牌。 现在,您准备将WildFly Swarm Docker映像推送到OpenShift Docker注册表中

mvn docker:push

根据图片创建应用

oc new-app --docker-image=development/swarm-sample:latest

为新创建的路线公开一条路线。 并确保在通过浏览器访问主机文件之前,使用正确的映射更新主机文件。

oc expose service swarm-sample --hostname=wildfly-swarm.vagrant.f8

检查http://wildfly-swarm.vagrant.f8/api/v1/service,看看一切是否正常。

从图像获取OpenShift图像流

oc get is
oc describe is

标记最新图片以进行宣传

oc tag  172.30.238.11:5000/development/swarm-sample@sha256:6a53f0d875d75459eca6192e83cf4f8d879bb7cf9260e2a8addf412745b434fc development/swarm-sample:promote

以用户test1的身份使用密码test1登录并切换到测试项目

oc login -u test1
oc project test

从升级的图像创建应用程序

oc new-app development/swarm-sample:promote

将服务公开为一条路线

oc expose service swarm-sample --hostname=wildfly-swarm-test.vagrant.f8

检查是否可以访问:http://wildfly-swarm-test.vagrant.f8/api/v1/service

如果您现在再次以dev1身份登录,则进入完整的开发周期并更改应用程序,构建新映像并再次推送它,您会看到,只有开发环境得到更新,而QA环境仍停留在升级的标签上。 当开发人员希望再次更新质量检查时,您可以推广映像的“新”最新版本,并且测试环境也将得到更新。

翻译自: https://www.javacodegeeks.com/2015/11/promoting-docker-images-across-environments.html

docker映像中安装软件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值