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>
  • 相关阅读:
    Infopath Notify 弹出提示信息
    window.showModalDialog 返回值
    【转】获得正文内容中的所有img标签的图片路径
    Json Datable Convert
    Sharepoint 列表 附件 小功能
    Surgey 权限更改
    SQL 触发器用于IP记录转换
    Caml语句 查询分配给当前用户及当前组
    jquery 1.3.2 auto referenced when new web application in VSTS2010(DEV10)
    TFS diff/merge configuration
  • 原文地址:https://www.cnblogs.com/eason-d/p/11009248.html
Copyright © 2011-2022 走看看