随笔 - 502  文章 - 1 评论 - 6 阅读 - 37万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

创建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>
复制代码

 

posted on   1161588342  阅读(10611)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2018-06-12 MyBait 符号大于 小于理解
2018-06-12 ScheduledThreadPoolExecutor 线程池调度 使用
2018-06-12 Maven 快速构建一个项目
点击右上角即可分享
微信分享提示