微服务-SpringCloud和Docker整合部署(五)

一、使用Docker的maven插件,构建springboot应用

官方文档:Getting Started | Spring Boot with Docker

(1)创建springboot工程,选择web

启动运行: 

 

(2)步骤:maven里面添加配置pom.xml

 <properties>
		   <docker.image.prefix>yuan</docker.image.prefix>
		</properties>
		<build>
			<finalName>docker-demo</finalName>
		    <plugins>
		        <plugin>
		            <groupId>com.spotify</groupId>
		            <artifactId>dockerfile-maven-plugin</artifactId>
		            <version>1.3.6</version>
		            <configuration>
		                <repository>${docker.image.prefix}/${project.artifactId}</repository>
		                <buildArgs>
		                    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
		                </buildArgs>
		            </configuration>
		        </plugin>
		    </plugins>
		</build>

配置说明:

Spotify 的 docker-maven-plugin 插件是用maven插件方式构建docker镜像的。

${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}

文档:Dockerfile 指令详解 - Docker —— 从入门到实践

打包SpringCloud镜像并上传私有仓库并部署

1.创建Dockerfile,默认是根目录,(可以修改为src/main/docker/Dockerfile,如果修则需要制定路径)

什么是Dockerfile : 由一系列命令和参数构成的脚本,这些命令应用于基础镜像, 最终创建一个新的镜像

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ARG JAR_FILE

COPY ${JAR_FILE} app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

参数讲解:

FROM <image>:<tag> 需要一个基础镜像,可以是公共的或者是私有的, 后续构建会基于此镜像,如果同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令

VOLUME  配置一个具有持久化功能的目录,主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录

ARG  设置编译镜像时加入的参数, ENV 是设置容器的环境变量

COPY : 只支持将本地文件复制到容器 ,还有个ADD更强大但复杂点

ENTRYPOINT 容器启动时执行的命令

EXPOSE 8080 暴露镜像端口

2、构建镜像

mvn install dockerfile:build

https://cr.console.aliyun.com/repository/cn-hangzhou/hsx_hub/nginx-docker/details

  1. 登录阿里云容器镜像服务,输入密码(密码不显示!)

docker login --username=andy凌冰 registry.cn-hangzhou.aliyuncs.com

(2)打标签

docker tag a4dba3f91fba registry.cn-hangzhou.aliyuncs.com/hsx_hub/nginx-docker:docker-demo-v202109

(3)推送到镜像仓库

docker push registry.cn-hangzhou.aliyuncs.com/hsx_hub/nginx-docker:docker-demo-v202109

本地服务器使用1,2,3

(4)应用服务器拉取镜像 

docker pull registry.cn-hangzhou.aliyuncs.com/hsx_hub/nginx-docker:docker-demo-v202109

docker run -d --name my_docker_demo1 -p 8099:8080  a4dba3f91fba 

应用服务器使用1,4

  2.查看启动日志 docker logs -f  containerid

 docker logs -f 178b60772db34cf482ac0a5ac1e8e03ea6ffbb3618cf0ceb43f8ec17ae315e93

 访问:http://IP远程:8089/user/find

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值