zoukankan      html  css  js  c++  java
  • Docker Spring boot 项目使用 docker-maven-plugin 执行mvn docker:build 打成镜像

    创建Dockerfile文件

    此处的参数说明:

    FROM openjdk:8-jdk-alpine  基与jdk1.8
    VOLUME /tmp   挂载容器的位置, 容易找到
    ADD kitty-generator-1.0.0.jar app.jar   宿主机器的jar文件 移动到 容器的jar文件 
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]  容器执行的命令

    EXPOSE 9000 简易爆漏的端口 下面docker run -p 还是要的, 因为容器是桥接模式
    EXPOSE 9092 写多个就会暴露多个端口

    若要执行调优内存:加参数如下

    
    
    

    2:POM.xml配置 加入docker:build插件

     <artifactId>kitty-generator</artifactId>  此处和下面${project.artifactId} 对应
    <version>${project.version}</version>
    <packaging>jar</packaging> 此处改为jar包方式
    <properties>
       *****
    <docker.image.prefix>kitty</docker.image.prefix> 此处和下面${docker.image.prefix} 对应
    </properties>

    #下面为jar方式.
        <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins>

    在父模块打包

    mvn clean install package -Dmaven.test.skip  

    在子模块执行生成镜像

    mvn docker:build -Dmaven.test.skip

    启动镜像

    docker run -itd -p 9000:9000 -v /data/generator/:/data kitty/kitty-generator

     -it  可以交互进入容器

    -d   后台运行

    -p 端口映射,若项目有多个端口,  -p 9000:9000 -p 9092:9092 写多个即可

    -v 挂载文件 宿主/data/generator/ 不存在会自动创建   容器/data会自动创建

    挂载文件配置 

       * 注意下方/data/ 红色字体

    -v /data/generator/:/data  这的/data 表示容器的日志 将会在宿主机器生成/data/generator/kitty-generator.log文件
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        <!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 -->
        <appender name="baselog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>/data/kitty-generator.log</File>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>log/base.%d.%i.log</fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>100 MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>
                    [%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
                </pattern>
                <charset>UTF-8</charset> <!-- 此处设置字符集 -->
            </encoder>
        </appender>
        <!-- 日志级别 -->
        <root>
            <!-- 定义了ERROR和INFO级别的日志;分别在FILE文件和控制台输出 -->
            <level value="INFO" />
            <appender-ref ref="baselog" />
            <appender-ref ref="console" />
        </root>
        <logger name="com.louis.kitty.generator" level="INFO">
            <appender-ref ref="baselog" />
        </logger>
    </configuration>
  • 相关阅读:
    增强学习笔记 第二章 多臂赌博机问题
    学习计划与目标
    2020秋季新学期
    2019春总结作业
    2019春年第四次课程设计实验报告
    2019春年第三次课程设计实验报告
    2019春年第二次课程设计实验报告
    2019春年第一次课程设计实验报告
    2019春第十二周作业
    2019春第十一周作业
  • 原文地址:https://www.cnblogs.com/eason-d/p/11009248.html
Copyright © 2011-2022 走看看