SpringBoot应用可执行Jar包和打包成Docker镜像

jar包结构 

 

启动类

 直接运行jar?

 

 jar包同名的.conf后缀文件

JAVA_OPTS="-Xmx1024m -Xms1024m -Xmn384m"

 Docker

什么是Docker镜像


·镜像是静态的只读模板
·镜像中包含构建Docker容器的指令
·镜像是分层的
·通过Dockerfile 来创建镜像

Dockerfile 示例1

FROM java:8
EXPOSE 8080
ARG JAR_FILE
ADD target/${JAR_FILE} /waiter-service.jar
ENTRYPOINT ["java", "-jar","/waiter-service.jar"]

指令

 

 通过Maven构建Docker镜像


准备工作
·提供一个Dockerfile
·配置dockerfile-maven-plugin插件
执行构建
 mvn package
 mvn dockerfile:build检查结果
- docker images

Dockerfile 示例2

FROM reg.geektime.com/library/openjdk:8-jdk-alpine
LABEL maintainer "geektime"
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/lib:/data/lib
ADD /adapter-service-2.1.9-RELEASE.jar /
ADD /libtunaEncrypt.so
ENTRYPOINT ["java", "-Xdebug", "-Xnoagent", "-Djava.compiler=NONE", "-Duser.timezone=GMT+08","-Xrunjdwp:transport=dt_socket,address=5055,server=y,suspend=n","-Djava.security.egd=file:/dev/./urandom", "-jar", "/adapter-service-2.1.9-RELEASE.jar"]

 

 

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <dockerHost>http://192.168.105.71:2375</dockerHost>
                    <imageName>${project.name}:${project.version}</imageName>
                    <serverId>dockerId</serverId>
                    <registryUrl>reg.geektime.com</registryUrl>
                    <dockerDirectory>target/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>tag-image</id>
                        <phase>install</phase>
                        <goals>
                            <goal>tag</goal>
                        </goals>
                        <configuration>
                            <image>${project.artifactId}:${project.version}</image>
                            <newName>
                                reg.geektime.com/pub/${project.artifactId}:${project.version}
                            </newName>
                        </configuration>
                    </execution>
                    <execution>
                        <id>push-image</id>
                        <phase>install</phase>
                        <goals>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <imageName>
                                reg.geektime.com/pub/${project.artifactId}:${project.version}
                            </imageName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值