springboot中使用dockerfile

目录

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

环境

  • MAC
  • Centos7
  • JDK8
  • SpringBoot
  • Dockerfile

一、创建springboot项目

springboot中使用dockerfile_第1张图片
上面是springboot的项目结构。

选择Initalizr Service URL

  • 创建springboot项目的时候,选择https://start.aliyun.com,速度比默认的快好几倍。
  • https://start.spring.io/
  • https://start.aliyun.com

springboot中使用dockerfile_第2张图片

二、创建Dockerfile文件

springboot中使用dockerfile_第3张图片

  • 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 [email protected]

三、Springboot用maven打包

springboot中使用dockerfile_第4张图片

  • 用maven install命令打包
  • 会在target目录下生成jar包

遇到的坑

  • java -jar 命令启动项目的时候,提示找不到主文件

解决办法

  • pom.xml中添加如下配置,如果pom.xml中已经有了,就覆盖一下
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <configuration>
                <source>1.8source>
                <target>1.8target>
                <encoding>UTF-8encoding>
            configuration>
        plugin>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackagegoal>
                    goals>
                execution>
            executions>
        plugin>
    plugins>
build>

四、制作Docker镜像

springboot中使用dockerfile_第5张图片

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

springboot中使用dockerfile_第6张图片

  • 出现如上图结果,表示镜像创建成功了。可以用docker images命令查看
    springboot中使用dockerfile_第7张图片

五、创建Docker容器并启动

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

在这里插入图片描述

六、检验结果

  • 在浏览器中输入localhost
    springboot中使用dockerfile_第8张图片
  • 成功,我通过主机的80端口,访问六容器里面的8080端口。

七、总结

  • lhl-docker-java8:1.0,这个镜像是我上篇文章做的基础Java环境镜像
  • 在制作的过程中,遇到了springboot找不到主文件的问题,查看了网上那么多资料,只想说一句,写文章不是拷贝别人,要自己实践一下,通过了没问题了,在发表。
  • 学习,是一生的事情,继续加油!

你可能感兴趣的:(学习笔记,spring,boot,spring,docker,java,maven)