1. 程式人生 > 其它 >最簡捷的docker 部署 springboot專案外部yml

最簡捷的docker 部署 springboot專案外部yml

技術標籤:Javajava

第1步:安裝Docker,略;

第2步:下載openjdk:

dockers pull openjdk

第3步:檢視下載後的openjdk,應如圖所示:

第4步:建立工作目錄

在工作目錄下,建立工作區:

我的工作區設定在/home/work,

在work目錄下,建立三個目錄,分別是:

conf,jar,logs,目錄結構如圖:

其中conf目錄放置專案的yml和其他配置xml檔案,jar目錄放置打包jar檔案,logs目錄放置將來的logs檔案。

第5步:在work目錄下建立Dockerfile檔案,內容如下:

FROM docker.io/openjdk

EXPOSE 8080
ENTRYPOINT ["java","-jar","/lib/app.jar","--logging.config=/conf/logback-spring.xml","--spring.config.location=/conf/application.yml"]

(其中的xml檔案和yml檔案很常規,大家肯定知道是什麼),注意,最後一行,/lib/app.jar,表明,將來容器將執行/lib/app.jar檔案。而這個檔案將會對映到宿主機上。/conf/下的其他兩個檔案也是同理。

第6步:進行工程打包,其中的pom.xml檔案,需要加入以下外掛:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>**/*.yml</exclude>
            </excludes>
        </resource>
    </resources>
</build>

第7步:上傳檔案。

將打包好的jar檔案,命名為app.jar,上傳至/home/work/lib目錄下。並將準備的好的application.yml和日誌配置檔案logback-spring.xml上傳到conf目錄下。

第8步:使用docker,根據Dockerfile,建立一個工程映象。

docker build -t work/mywork:20201231 --rm=true .

注意:

1、work/mywork:20201231,這個名字可以按照 專案/模組(微服務):日期,這樣看起來比較清晰,不容易混亂。

2、--rm=true是為了刪除製作映象過程中的臨時檔案

3、最後一個“.”是不可以省略的。

此刻,執行“docker images”,可以看到自己剛剛製作好的映象。

第9步:使用映象,建立容器:

docker run -dit --name mywork -p 8080:8080-v /home/work/conf:/conf -v /home/work/conf/lib:/lib -v /home/work/conf/logs:/logs work/mywork:20201231

-v是將宿主機上的目錄對映到容器上,因此容器在執行java -jar /lib/app.jar 時,其實載入的就是宿主機上的jar,訪問的也是宿主機conf目錄下的application.yml檔案。

第10步:用docker ps檢視容器的執行狀況。

(如果容器啟動失敗,可用docker ps -a檢視容器狀態。)

如果上面的操作都沒問題,此刻肯定是可以成功運行了。

以後無論是更新jar,還是修改yml文件,都直接在宿主機上修改,然後,重新啟動容器即可。

docker restart 容器名或容器id

最後,可用以下命令檢視容器的日誌,也可以直接到logs目錄下,開啟log檔案,檢視執行結果:

docker logs -f -t --since=60m 1dc396e4a15b #這是檢視最近60分鐘之內的日誌,時間可以更改

上述過程,親手在兩臺伺服器上部署成功,也可以使用docker-compose部署,整個過程非常簡單有效。

2020年12月31日最後一天,算是獻禮吧