java-sproot项目打包--docker环境 用命令行执行的方法 (含容器时间差问题解决)

pom.xml

配置打包jar包需要的库


<build>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
//<configuration>
// <mainClass>com.example.b_end_test_project.BEndTestProjectApplication</mainClass> -- 这个不配置也行 会自动找到启动类,配置的话打包前要注意是否正确
// </configuration>
</plugin> </build>

在maven点击 【package】打包

上面的命令

mvn clean

mvn package

合起来就是 (跳过测试打包) -----注意要cd到项目根目录下执行

mvn clean package -Dmaven.test.skip=true

 

cd到 打包出来的jar包目录下

执行命令: java -jar B_End_Test_Project-0.0.1-SNAPSHOT.jar (打包出来的jar包) 就可以启动你的项目了-------输出日志看 https://www.cnblogs.com/kaibindirver/p/16257975.html

 

我成功的打包配置. ------注意 <finalName>pay</finalName>   这个标签可以控制打包出来的jar包名称是啥

<build>
        <finalName>pay</finalName>  
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.BEndTestProjectApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 

 

docker 容器之间的关联

项目启动时1,可以--link 关联es的容器 ,es_643是 ES容器的名字,ees是自己起的别名,可以当IP用

容器里面的配置也是用别名,就可以访问

 

 

看完上面的信息后---进入正题

 

一、使用maven命令打包项目

跳过测试打包
mvn clean package -Dmaven.test.skip=true

 

二、编写dockerfile文件

位置放在项目根目录下 文件名 Dockerfile

FROM centos:centos7
MAINTAINER lucax
WORKDIR /
RUN yum install -y java-1.8.0-openjdk
RUN yum -y install vim
RUN yum -y install net-tools
//把项目中打包出来的jar包 添加到容器里面,并命名为app.jar
ADD /target/Security-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8080
//设置容器中文解码方式
ENV LANG en_AU.utf8
//设置容器时区问题
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
//启动容器时执行的命令
CMD java -jar app.jar --spring.profiles.active=dev

 

三、执行docker命令生成镜像

docker build -t test:1.0 .

 

四、使用镜像启动容器

docker run -it -p 8080:8000 --name BendApp --link mysql:mysql test:1.0

 

科普:

//中文编码问题要看自己的容器系统是什么编码方式

进入容器

locale -a查看容器所有语言环境
https://www.cnblogs.com/z-belief/p/6148463.html

 

//启动容器时执行的命令中--spring.profiles.active=dev

意思是执行时使用 

application-dev.yml  的配置文件

 

--link

这个见最上面解说的

 

posted @ 2022-01-13 12:08  凯宾斯基  阅读(124)  评论(0编辑  收藏  举报