电商系统的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密码”

alist好用的镜像地址 api镜像_alist好用的镜像地址

3.创建镜像仓库 点击右上角“创建镜像仓库”

创建命名空间,命名空间在全阿里云应该为唯一标识,建议格式为公司名称+仓库类型

创建仓库,仓库名称一般为业务命名。比如buyer-pc、manager-seller

alist好用的镜像地址 api镜像_恰饭_02

选择代码源【一般选本地仓库】

alist好用的镜像地址 api镜像_docker_03

这样,我们的阿里云容器镜像服务仓库就创建好了。我们可以点击“管理”查看详细内容,里边也有一些基础的操作指南可供查阅。

alist好用的镜像地址 api镜像_java_04

二、配置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私服中可以看到相应的镜像

alist好用的镜像地址 api镜像_java_05