电商系统的API为什么要构建docker镜像
因为传统部署电商系统存在不足之处,如果多处使用,就需要进行多次部署.
所以我们考虑优化这一现象,决定采用docker轻量级容器虚拟化技术部署电商系统
优点
docker镜像可以将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,成为一个软件开发的标准化单元。
docker镜像可以做到"一次构建,到处运行",这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。
对于运维工程师而言,使用docker可以让你在秒级创建一个期望的目标软件或者集群.
对于开发者而言,docker镜像机制可以帮你快速创建一个可用的开发环境,有docker镜像后,任何开发者都可以秒级创建开发环境.
Javashop电商系统就提供了这一便利.
Javashop的基础设施是基于docker运行的,API和UI也用到了docker镜像进行k8s集群部署.
下面主要介绍一下Javashop电商系统API镜像制作
配置私服
一、首先要准备好您的docker私服
我们使用阿里云的容器镜像服务(优点:速度快,免费)。
1.进入阿里云控制台
https://cr.console.aliyun.com
2.设置仓库密码 点击右上角“设置Registry密码”
3.创建镜像仓库 点击右上角“创建镜像仓库”
创建命名空间,命名空间在全阿里云应该为唯一标识,建议格式为公司名称+仓库类型
创建仓库,仓库名称一般为业务命名。比如buyer-pc、manager-seller
选择代码源【一般选本地仓库】
这样,我们的阿里云容器镜像服务仓库就创建好了。我们可以点击“管理”查看详细内容,里边也有一些基础的操作指南可供查阅。
二、配置docker私服账号密码
修改.m2/settings.xml文件,在servers节点加入一个server节点:
<server>
<!--随便起一个名字,pom中可以根据这个id找到这个server节点的配置-->
<id>docker-aliyun</id>
<!--这里是在阿里云注册的账号-->
<username>xxx@aliyun.com</username>
<!--这里是在阿里云Registry密码,注意:不是阿里云控制台登录密码!!!-->
<password>xxxxx</password>
<configuration>
<!--这是在阿里云注册时填写的邮箱-->
<email>xxxx@aliyun.com</email>
</configuration>
</server>
三、配置docke私服地址
修改工程的/b2b2c/pom.xml文件
<properties>
<docker-registry>请填写您docker私服地址</docker-registry>
<docker-server-id>docker-aliyun</docker-server-id>
</properties>
1、其中docker-registry填写您的docker私服地址
注意请以"/"结尾,如果您使用的是阿里云的私服,格式示例如下:
registry.cn-beijing.aliyuncs.com/javashop7-1/
其中 javashop7-1 为阿里云中的命名空间
2、其中 docker-aliyun 要和第二步的id保持一致
build and push 在构建镜像之前您需要对/config-server/src/main/resources/application.properties做出调整:
server.port=8888
spring.cloud.config.server.git.uri=https://git-url
spring.cloud.config.server.git.username=your username
spring.cloud.config.server.git.password=your password
请修改为您相应的git信息
其它工程/src/main/resources/bootstrap.yml 文件约定了配置中心的分支,默认为k8s,请根据您的实际情况调整他们:
spring:
application:
name: xxxxx
cloud:
config:
uri: http://config-service:8888
profile: prod #请调整为您实际的运营环境
label: k8s #请调整为您实际的分支
其中的profile: prod默认约定了使用生产环境配置,也请根据您的实际情况调整他们
注意,您如果需要调整bootstrap.yml,所有模块都需要对应修改.
一切就绪,请在项目的根目录下执行下面的命令:
mvn clean install docker:build -DskipTests -DpushImage
待push完成,在您的docker私服中可以看到相应的镜像