# 容器化集成

# 示例工程

系统应用集成示例工程打开 (opens new window)

# 本内容你将获得

  • 快速集成容器打包的方式和多种打包方式
  • 前后端打包的方式
  • 前端打包自定义后端域名方式
  • 容器上传镜像中心方式
  • 支持源码到镜像(S2I)的集成方式

# 服务工程容器化

这里主要是集成jib-maven-plugin插件,集成的是阿里云镜像仓库

# 配置服务器镜像认证

服务器配置 docker-login,如下:

REGISTRY_USERNAME=
REGISTRY_PASSWORD=

docker login --username=$REGISTRY_USERNAME --password=$REGISTRY_PASSWORD registry.cn-shenzhen.aliyuncs.com

# 容器化打包

账号名密码可以使用 jenkinsfile 自定义配置,这里做了显示配置,不太安全,例子待补充

# 自定义镜像创建和认证
export DOCKER_REGISTRY=registry.cn-shenzhen.aliyuncs.com
export REGISTRY_NAMESPACE=alinesno-cloud-incubator

# jenkins写法
mvn -B -U -f ${projectName}/pom.xml install package
mvn -B -U -f ${projectName}/pom.xml clean compile jib:build -Ddocker.registry.name=${REGISTRY_NAMESPACE}

# 本地工程写法
mvn clean compile jib:build \
	-Ddocker.repostory=${DOCKER_REGISTRY} \
	-Ddocker.registry.name=${REGISTRY_NAMESPACE}

如果自定义账号名密码的方式,添加如下配置

export REGISTRY_USERNAME=
export REGISTRY_PASSWORD=

mvn -B -U -f ${projectName}/pom.xml clean compile jib:build \
    -Djib.to.auth.username=${REGISTRY_USERNAME}  \
    -Djib.to.auth.password=${REGISTRY_PASSWORD}

# 前端工程容器化

这里主要集成的是 maven 打包插件,与 maven 工程整合构建打包

# 前端工程打包

前端工程打成容器镜像

projectName=alinesno-cloud-demo-ui

# 镜像构建设置变量
export docker_repostory=registry.cn-shenzhen.aliyuncs.com
export docker_registry_name=alinesno-cloud-incubator
export project_artifactid=alinesno-cloud-demo-ui
export project_version=2.1.2-RC

cd ${projectName}/docker
bash ${projectName}/docker/build-docker.sh

其它build-docker.sh请查看示例工程

2.1.2-RC后版本镜像打包方式,更加简洁,如下:

mvn clean package && bash ./docker/build-docker.sh \
	-r registry.cn-shenzhen.aliyuncs.com \
	-s alinesno-cloud-incubator \
	-a alinesno-cloud-demo-ui \
	-v 2.1.2-RC

参数说明:

  • r 镜像仓库地址,比如registry.cn-shenzhen.aliyuncs.com
  • s 镜像空间地址,比如alinesno-cloud
  • a 镜像名称,这里建设默认取工程名称或者pom.xml中的articlectid,比如alinesno-cloud-demo-s2i-ui
  • v 镜像版本号,这里建议跟随工程版本号

# 其它