springboot中的dockerfile使用

環境

  • MAC
  • Centos7
  • JDK8
  • SpringBoot
  • Dockerfile

一、創建springboot項目

項目結構

上面是springboot的項目結構。

選擇Initalizr Service URL

  • 創建springboot項目的時候,選擇https://start.aliyun.com,速度比默認的快好幾倍。
  • https://start.spring.io/
  • https://start.aliyun.com

在這裡插入圖片描述

二、創建Dockerfile文件

在這裡插入圖片描述

Dockerfile內容如下:

# 該鏡像需要依賴的基礎鏡像
FROM lhl-docker-java8:1.0
# 將targer目錄下的jar包復制到docker容器/home/springboot目錄下面目錄下面
ADD ./target/springboot-dockerfile-0.0.1-SNAPSHOT.jar /home/springboot/springboot-dockerfile.jar
# 聲明服務運行在8080端口
EXPOSE 8080
# 執行命令
CMD ["java","-jar","/home/springboot/springboot-dockerfile.jar"]
# 指定維護者名稱
MAINTAINER Mirror [email protected]

三、Springboot用maven打包

在這裡插入圖片描述

用maven install命令打包

會在target目錄下生成jar包

遇到的坑

java -jar 命令啟動項目的時候,提示找不到主文件

解決辦法

pom.xml中添加如下配置,如果pom.xml中已經有瞭,就覆蓋一下

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <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>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

四、制作Docker鏡像

在這裡插入圖片描述

在IDEA的Terminal中,執行如下命令:

docker build -t lhl-springboot-docker:1.0 .

在這裡插入圖片描述

出現如上圖結果,表示鏡像創建成功瞭。可以用docker images命令查看

在這裡插入圖片描述

五、創建Docker容器並啟動

執行如下命令:

docker run -dp 80:8080 --name lhl-springboot-env lhl-springboot-docker:1.1 

用我們剛才創建的鏡像,創建名字叫lhl-springboot-env的容器,並啟動

在這裡插入圖片描述

六、檢驗結果

在瀏覽器中輸入localhost

在這裡插入圖片描述

成功,我通過主機的80端口,訪問六容器裡面的8080端口。

七、總結

lhl-docker-java8:1.0,這個鏡像是我上篇文章做的基礎Java環境鏡像

在制作的過程中,遇到瞭springboot找不到主文件的問題,查看瞭網上那麼多資料,隻想說一句,寫文章不是拷貝別人,要自己實踐一下,通過瞭沒問題瞭,在發表。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: