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>