以在线考试系统spring-microservice-exam为例,将本地源码打包成镜像推送到阿里云镜像仓库,在阿里云服务器上拉取镜像部署
1:前提
- 本地安装docker、docker-compose安装教程推荐链接
- 注册阿里云账号
2:在本地开发环境构建镜像
后端项目地址:https://gitee.com/wells2333/spring-microservice-exam
- 配置构建的同时构建镜像,并推送到阿里云
全局配置命名空间名字:这个本项目需要配置一个pom.xml
配置镜像名称和密码:这个本项目要配置七个pom.xml
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.verion}</version>
<executions>
<!--执行 mvn package 时 自动构建docker镜像并推送到仓库 -->
<execution>
<id>default</id>
<phase>package</phase>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${docker.registry}/${docker.namespace}/${project.artifactId}</repository>
<tag>latest</tag>
<username>账号(镜像的账号:在访问凭证页面最下面能找到)</username>
<password>密码(镜像密码:在访问凭证页面你设置的密码)</password>
<!-- 构建参数,指定jar包名称 -->
<buildArgs>
<JAR_FILE>${project.name}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
- 在spring-microservice-exam目录下运行:
$ mvn clean package
$ mvn clean package
-
docker插件配置打包的同时构建镜像
-
如果报错
-
如果像4那样报错,就检查你的命名空间、用户名、密码是否正确。
前端项目:这里演示一个,另一个操作相同
- 以
spring-microservice-exam-ui
为例,在spring-microservice-exam-ui
目录下运行打包命令:$ yarn run build
/$ npm run build
- 运行成功后会生成dist目录,里面是项目的静态资源,再运行构建镜像命令
$ docker build -t registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0 .
- 把ui镜像推送到仓库
sudo docker push registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0
- 本地试运行命令:(友情提示,80端口windows系统是自己使用的,可以改个别的)
$ docker run -d -p 80:80 --name spring-microservice-exam-ui registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0
3:创建命名空间和镜像仓库设置访问凭证密码
登录阿里云控制台,在容器镜像服务菜单下,创建spring-microservice-exam命名空间和各服务的仓库
-
如:
config-service
、auth-service
、spring-microservice-ui
-
创建镜像仓库(下面创建了九个仓库)
-
创建命名空间
-
设置密码,查看用户名
4:部署
部署步骤