SpringBoot项目打包到Docker

SpringBoot项目打包到Docker

  • 前言
  • 步骤
    • 配置Docker
    • Idea配置
    • SpringBoot项目配置

前言

docker介绍和安装参考菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html

本次安装使用的环境为:

CentOS7
Docker19.03.1
IntelliJ IDEA 2019.1.3 x64
Jdk1.8

步骤

配置Docker

  1. 配置docker远程端口:
  vi /usr/lib/systemd/system/docker.service

SpringBoot项目打包到Docker_第1张图片
如图所示,在最后追加: -H tcp://0.0.0.0:2375

  1. 重启守护进程和docker
 systemctl daemon-reload
 systemctl restart docker
  1. 关闭防火墙,或者选择开放2375端口
sudo systemctl stop firewalld
//永久关闭
sudo systemctl disable firewalld
//开放端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent  

Idea配置

  1. 安装Docker插件并重启idea
    SpringBoot项目打包到Docker_第2张图片
  2. 连接docker

SpringBoot项目打包到Docker_第3张图片连接成功后可以在下方工具栏中看见他

SpringBoot项目打包到Docker_第4张图片连接上以后就能看见docker中的镜像和容器了。

SpringBoot项目配置

  1. 首先创建项目,勾选web服务等基础,为了等下测试是否成功运行的页面。
  2. 在main目录下创建文件夹docker,并创建dockerfile:
    SpringBoot项目打包到Docker_第5张图片

注意这个dockerfile没有后缀,直接右键docker文件夹new file,然后会有弹框选择
SpringBoot项目打包到Docker_第6张图片SpringBoot项目打包到Docker_第7张图片
dockerfile中的内容暂时写:

FROM openjdk:8-jdk-alpine
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  1. 配置pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
    
    <packaging>jarpackaging>
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.1.6.RELEASEversion>
        <relativePath/> 
    parent>
    
    <groupId>com.example.oraclegroupId>
    <artifactId>demoartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>demoname>
    <description>Demo project for Spring Bootdescription>

    <properties>
        <java.version>1.8java.version>
        
        
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <docker.image.prefix>com.demodocker.image.prefix>
    properties>
    
	
	
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <configuration>
                    <mainClass>com.example.oracle.demo.DemoApplicationmainClass>
                configuration>
            plugin>

            
            <plugin>
                <groupId>com.spotifygroupId>
                <artifactId>docker-maven-pluginartifactId>
                <version>1.0.0version>
                <configuration>
                	
                    <dockerDirectory>src/main/dockerdockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/targetPath>
                            <directory>${project.build.directory}directory>
                            <include>${project.build.finalName}.jarinclude>
                        resource>
                    resources>
                configuration>
            plugin>
            <plugin>
                <artifactId>maven-antrun-pluginartifactId>
                <executions>
                    <execution>
                        <phase>packagephase>
                        <configuration>
                            <tasks>
                                <copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}">copy>
                            tasks>
                        configuration>
                        <goals>
                            <goal>rungoal>
                        goals>
                    execution>
                executions>
            plugin>

        plugins>
    build>

project>

  1. 添加配置:
    SpringBoot项目打包到Docker_第8张图片
    SpringBoot项目打包到Docker_第9张图片
    这里配置了端口的映射和日志文件的映射,比较简单

  2. maven打包
    SpringBoot项目打包到Docker_第10张图片必须留意一下是否打包成功
    SpringBoot项目打包到Docker_第11张图片

  3. 启动dockerfile
    SpringBoot项目打包到Docker_第12张图片

等下下载依赖的镜像和文件,全部完成后留意一下输出的日志文件中是否成功
SpringBoot项目打包到Docker_第13张图片

最后在浏览器中输入测试的页面就OK啦
SpringBoot项目打包到Docker_第14张图片

真的是非常方便!

你可能感兴趣的:(SpringBoot项目打包到Docker)