IDEA 配合 Dockerfile 部署 SpringBoot 工程

AaronLin發表於2021-09-05

準備 SpringBoot 工程

  1. 新建 SpringBoot 專案,預設的埠是 8080 ,新建 Controller 和 Mapping
@RestController
public class HelloController {
    @GetMapping("hello")
    public String hello() {
        return "hello world!";
    }
}

注意,需要在 pom 中新增 spring-boot-maven-plugin 外掛,否則執行 jar 包時會提示:沒有主清單屬性

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

啟動專案,訪問 http://localhost:8080/hello 測試

  1. 在專案目錄新增 Dockerfile 檔案
FROM openjdk:8-jre
#  ./target/demo-0.0.1-SNAPSHOT.jar 為編譯後的 jar 包位置
# jar 包的名稱要與自己配置的相同,格式為:專案名稱-版本號.jar
COPY ./target/demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar"]
CMD ["app.jar"]
  1. Docker 遠端連線配置
    演示使用的 Docker 宿主機是 CentOS 7,修改配置並重啟 Docker 服務
vim /lib/systemd/system/docker.service

ExecStar 這行配置修改為下面這行

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

重啟服務

systemctl daemon-reload
systemctl restart docker

可以通過訪問 API 進行測試,IP 需要修改為宿主機對應的 IP,埠設定的為 2375,訪問成功會顯示 Docker Engine 的相關版本資訊

http://192.168.43.161:2375/version

如果是部署在公網或者生產環境,需要配置安全訪問,可以參考:Docker開啟遠端安全訪問

IDEA 配置

  1. IDEA 安裝 Docker 外掛

  2. 配置 IDEA Docker 連線
    在設定中可以找到 Docker,點選加號可以新增新的 Docker 連線,輸入名稱、Engine API URL,然後就會提示:Connection successful,即連線成功

  3. 點選 Run/Debug Configurations

    輸入名稱、新增 Dockerfile(剛剛新增的那個)、容器名稱、對映埠號
    Before launch選擇Maven 並輸入命令:clean package -U -DskipTests,這個命令在每次編譯 Dockerfile 之前都會執行

  4. 點選執行就會自動打 jar 包,並在宿主機上構建映象,執行容器

  5. 可以通過 Docker 宿主機進行測試訪問,這裡演示使用的 192.168.43.161 需要替換成自己 Docker 宿主機的 IP

http://192.168.43.161:8080/hello

參考資料

Docker - 遠端連線
IDEA的Docker外掛實戰(Dockerfile篇)

相關文章