springboot中的dockerfile使用 目录 环境 一.创建springboot项目 选择Initalizr Service URL 二.创建Dockerfile文件 三.Springboot用maven打包 遇到的坑 解决办法 四.制作Docker镜像 五.创建Docker容器并启动 六.检验结果 七.总结 环境 MAC Centos7 JDK8 SpringBoot Dockerfile 一.创建
目录
- 环境
- 一、创建springboot项目
- 选择Initalizr Service URL
- 二、创建Dockerfile文件
- 三、Springboot用maven打包
- 遇到的坑
- 解决办法
- 四、制作Docker镜像
- 五、创建Docker容器并启动
- 六、检验结果
- 七、总结
环境
MACCentos7JDK8SpringBootDockerfile
一、创建springboot项目

上面是springboot的项目结构。
选择Initalizr Service URL
- 创建springboot项目的时候,选择https://start.aliyun.com,速度比默认的快好几倍。
- https://start.spring.io/
- https://start.aliyun.com

二、创建Dockerfile文件

Dockerfile内容如下:
# 该镜像需要依赖的基础镜像
FROM lhl-docker-java8:1.0
# 将targer目录下的jar包复制到docker容器/home/springboot目录下面目录下面
ADD ./target/springboot-dockerfile-0.0.1-SNAPSHOT.jar /home/springboot/springboot-dockerfile.jar
# 声明服务运行在8080端口
EXPOSE 8080
# 执行命令
CMD ["java","-jar","/home/springboot/springboot-dockerfile.jar"]
# 指定维护者名称
MAINTAINER Mirror 393015989@qq.com
三、Springboot用maven打包

用maven install命令打包
会在target目录下生成jar包
遇到的坑
java -jar 命令启动项目的时候,提示找不到主文件
解决办法
pom.xml中添加如下配置,如果pom.xml中已经有了,就覆盖一下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
四、制作Docker镜像

在IDEA的Terminal中,执行如下命令:
docker build -t lhl-springboot-docker:1.0 .

出现如上图结果,表示镜像创建成功了。可以用docker images命令查看

五、创建Docker容器并启动
执行如下命令:
docker run -dp 80:8080 --name lhl-springboot-env lhl-springboot-docker:1.1
用我们刚才创建的镜像,创建名字叫lhl-springboot-env的容器,并启动

六、检验结果
在浏览器中输入localhost

成功,我通过主机的80端口,访问六容器里面的8080端口。
七、总结
lhl-docker-java8:1.0,这个镜像是我上篇文章做的基础Java环境镜像
在制作的过程中,遇到了springboot找不到主文件的问题,查看了网上那么多资料,只想说一句,写文章不是拷贝别人,要自己实践一下,通过了没问题了,在发表。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
本文标题为:springboot中的dockerfile使用
基础教程推荐
- MyBatis-Plus自定义通用的方法实现 2023-07-15
- Java多线程学习笔记之三内存屏障与Java内存模型 2023-09-01
- java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法 2023-09-01
- 一文带你搞懂Java中方法重写与方法重载的区别 2023-07-14
- RocketMQ Push 消费模型示例详解 2023-05-24
- Java Web开发中过滤器和监听器使用详解 2023-06-30
- Java List的get方法 2023-10-08
- Spring Cloud Config分布式配置中心使用介绍详解 2023-05-07
- 关于Java双大括号{{}}的具体使用 2023-03-15
- Java实现插入排序算法可视化的示例代码 2023-04-23
