1. 程式人生 > >SpringBoot Maven專案構建Docker映象

SpringBoot Maven專案構建Docker映象

使用Maven構建Docker映象外掛:
pom.xml 檔案,新增外掛

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.4.0</version>
            <configuration>
                <repository>test/projectName</repository>
                <tag>${project.version}</tag>
                <buildArgs>
                	<!--此處是SpringBoot生成jar包的位置,使用變數JAR_FILE標識,可在Dockerfile中引用-->
                    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                </buildArgs>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.plexus</groupId>
                    <artifactId>plexus-archiver</artifactId>
                    <version>3.4</version>
                </dependency>
                <dependency>
                    <groupId>javax.activation</groupId>
                    <artifactId>javax.activation-api</artifactId>
                    <version>1.2.0</version>
                </dependency>
            </dependencies>

根目錄下,新建Dockerfile:

FROM openjdk:8
LABEL maintainer="LiaoDaShuai"
WORKDIR /
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]

使用構建命令:

mvn install dockerfile:build -Dmaven.test.skip=true

比較簡單,上面的<JAR_FILE>標籤是環境變數,可以在Dockerfile中引用到,當版本更改時,就不必手動去Dockerfile裡改了,其他引數就不解釋過多了。
待構建命令執行完了,即可使用docker images 檢視到構建成功的映象。
使用命令啟動該映象測試。

docker run -p 8080:8080 -d test/projectName:1.0.0 

使用宿主機的8080埠,訪問測試。

此外掛開源地址:https://github.com/spotify/dockerfile-maven