1.使用maven將項目打成一個包含所有的jar包
2.pom.xml中包含即可通過mvn clean package 就可以打成可執行jar包
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</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>
<configuration>
<fork>true</fork>
<mainClass>com.org.Application</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<!-- 分離出代碼包
<configuration>
<classifier>exec</classifier>
</configuration>
-->
</execution>
</executions>
</plugin>
</plugins>
</build>
3.將打成的jar包和一個DockerFile文件放入安裝了docker的環境
DockerFile內容為:
#指定依賴的鏡像
FROM java:8-alpine
#springboot tomcat掛載的目錄
VOLUME /tmp
#容器使用端口
EXPOSE 9002
#添加jar包入容器
ADD start-apply-service-1.0-SNAPSHOT.jar app.jar
#改名
RUN sh -c 'touch /app.jar'
#容器啟動java
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
------------------------------簡化版DockerFile配置-----------------------------------------
FROM java:8-alpine
EXPOSE 9002
ADD start-apply-service-1.0-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
-------------------------------end---------------------------------------------
4.執行 docker build -t springboot:2.0 . #最后的"."指的是DockerFile文件的當前路徑,springboot 為鏡像名,2.0為tag,build 就是構建的意思。
5.執行上述命名 即可通過docker images 看到 我們生成的鏡像
6. docker run -d -p 9002:9002 springboot:2.0 #啟動自定義容器
7.docker logs --tail=200 2915c40fdcdf #查看容器啟動日志
8.本地嘗試訪問