1. 程式人生 > >使用Maven外掛快捷打包釋出遠端Docker映象 dockerfile-maven-plugin

使用Maven外掛快捷打包釋出遠端Docker映象 dockerfile-maven-plugin

採用外掛一步打包釋出本地的Maven專案為遠端主機的Docker映象,之前的docker-maven-plugin已經被廢棄, dockerfile-maven-plugin是其替代,我們將採用最新的dockerfile-maven-plugin外掛

預備條件

  • 一臺可以遠端訪問的Docker主機
  • maven3以上

開放遠端Docker遠端訪問埠

# vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2377 -H unix:///var/run/docker.sock

在配置項中修改該屬性,該方式會直接暴露可以操控docker程序的埠,需要注意安全,修改完後重啟docker服務

sudo service docker restart

在客戶端新增系統環境變數引數

這裡寫圖片描述

為專案新增外掛

# Maven專案根目錄下的pom檔案
<build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version
>
1.4.0</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs
>
</configuration> </plugin> </plugins> </build>

${docker.image.prefix}變數需要在pom的properties內定義

    <properties>
        <docker.image.prefix>hnister</docker.image.prefix>
    </properties>

在專案根目錄下新增Dockerfile檔案

# dockerfile 基礎配置
FROM daocloud.io/library/java:8u40-b22
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} /app/app.jar
WORKDIR /app/
EXPOSE 8889
ENTRYPOINT ["java","-jar","./app.jar"]

打包釋出為遠端docker映象

mvn clean package dockerfile:build -DskipTests

第一次因為需要下載基礎底層映象會稍慢一點,之後構建都會很快,這樣映象就釋出完成了,可以在遠端檢視到映象
這裡寫圖片描述

執行映象

docker run -d -p 8889:8889 --name hnister-eureka-server hnister/hnister-eureka-server

這裡寫圖片描述