docker打包項目部署


1、首先在本地安裝docker,步驟可參考https://www.cnblogs.com/conswin/p/11055853.html

2、在對應項目目錄下增加Dockerfile文件,其內容可參考如下

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

參數講解:
FROM <image>:<tag> 需要一個基礎鏡像,可以是公共的或者是私有的, 后續構建會基於此鏡像,如果同一個Dockerfile中建立多個鏡像時,可以使用多個FROM指令
VOLUME 配置一個具有持久化功能的目錄,主機 /var/lib/docker 目錄下創建了一個臨時文件,並鏈接到容器的/tmp。改步驟是可選的,如果涉及到文件系統的應用就很有必要了。/tmp目錄用來持久化到 Docker 數據文件夾,因為 Spring Boot 使用的內嵌 Tomcat 容器默認使用/tmp作為工作目錄

ARG 設置編譯鏡像時加入的參數, ENV 是設置容器的環境變量
COPY : 只支持將本地文件復制到容器 ,還有個ADD更強大但復雜點
ENTRYPOINT 容器啟動時執行的命令
EXPOSE 8080 暴露鏡像端口

並在pom.xml文件中增加如下:其中docker.image.prefix,finalName標簽根據項目名稱自定義

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

 
   <build>
        <finalName>docker-demo</finalName>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <repository>${docker.image.prefix}/${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>    

3、右擊選擇項目-->run as-->maven build...,輸入如下命令,進行打包

install dockerfile:build

觀察控制台,出現如下信息,標識打包成功

[INFO] 
[INFO] Step 1/5 : FROM openjdk:8-jdk-alpine
[INFO] 
[INFO] Pulling from library/openjdk
[INFO] Digest: sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3
[INFO] Status: Image is up to date for openjdk:8-jdk-alpine
[INFO]  ---> a3562aa0b991
[INFO] Step 2/5 : VOLUME /tmp
[INFO] 
[INFO]  ---> Using cache
[INFO]  ---> a748cdf82dd0
[INFO] Step 3/5 : ARG JAR_FILE
[INFO] 
[INFO]  ---> Using cache
[INFO]  ---> 67055e1963cf
[INFO] Step 4/5 : COPY ${JAR_FILE} app.jar
[INFO] 
[INFO]  ---> 6caed43f4c12
[INFO] Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
[INFO] 
[INFO]  ---> Running in 07aa2ea9d650
[INFO] Removing intermediate container 07aa2ea9d650
[INFO]  ---> 2bfe8f5c564f
[INFO] Successfully built 2bfe8f5c564f
[INFO] Successfully tagged yunbo/yunbo-tm:latest
[INFO] 
[INFO] Detected build of image with id 2bfe8f5c564f
[INFO] Building jar: D:\YunboSpace\yunbo_online\yunbo-tm\target\docker-tm-docker-info.jar
[INFO] Successfully built yunbo/yunbo-tm:latest
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.996s
[INFO] Finished at: Wed Sep 25 14:42:33 CST 2019
[INFO] Final Memory: 50M/579M
[INFO] ------------------------------------------------------------------------

 

4、本地查看鏡像,可以發現已上傳至本地docker中,執行如下命令,先登錄遠程阿里雲鏡像中心,然后將鏡像推送過去

docker login --username=xxxxxxxxxx@126.com registry.cn-shanghai.aliyuncs.com

docker tag 2bfe8f5c564f  registry.cn-shanghai.aliyuncs.com/junjun_space/junjun_store:demo-v1.0

docker push registry.cn-shanghai.aliyuncs.com/junjun_space/junjun_store:demo-v1.0

5、登錄阿里雲服務,進行鏡像拉取,並啟動

docker pull registry.cn-shanghai.aliyuncs.com/junjun_space/junjun_store:demo-v1.0

docker run -d --name demo-server -p 8761:8761 f6099ee6f4b6

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM