再見命令列!一鍵部署應用到遠端伺服器,IDEA官方Docker外掛真香!

macrozheng發表於2022-06-21
Docker作為目前主流的容器技術,使用它部署應用是非常方便的!對於這款主流容器技術,IDEA官方自然也是有所支援的。最近體驗了一把IDEA官方提供的外掛,確實非常好用,今天我們以SpringBoot應用的打包部署為例,來聊聊IDEA官方Docker外掛的使用!

SpringBoot實戰電商專案mall(50k+star)地址:https://github.com/macrozheng/mall

外掛啟用

  • 由於該外掛為IDEA內建外掛,直接在外掛設定中啟用就好了;

  • 由於我們的Docker環境部署在遠端伺服器上,還需要配置下Docker的連線資訊,在Docker設定裡配置即可,看到連線成功提示後就表示配置正確了;

  • 接下來開啟IDEA底部的Services皮膚,雙擊Docker圖示進行連線,連線成功後就可以對遠端伺服器上的Docker容器和映象進行管理了。

映象管理

  • 點選Images按鈕,輸入需要下載的映象名稱和版本號就可以下載映象了,這裡IDEA還支援自動提示,實在太貼心了!

  • 右鍵指定映象開啟選單,我們還可以對其進行建立容器、檢視、刪除等常規操作;

  • 當然我們還可以使用Dockerfile來構建自己的映象,這裡以我的mall-tiny 腳手架專案為例,首先準備好Dockerfile指令碼;
# 該映象需要依賴的基礎映象
FROM java:8
# 將當前目錄下的jar包複製到docker容器的/目錄下
ADD ./mall-tiny-1.0.0-SNAPSHOT.jar /mall-tiny-1.0.0-SNAPSHOT.jar
# 宣告服務執行在8080埠
EXPOSE 8080
# 指定docker容器啟動時執行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-1.0.0-SNAPSHOT.jar"]
# 指定維護者的名字
MAINTAINER macrozheng
  • 然後開啟Dockfile檔案,點選左側按鈕選擇建立新的執行配置;

  • 接下來選擇我們配置好的遠端Docker服務,配置好應用打包目錄及映象名稱;

  • 然後選擇打包映象,控制檯將輸出如下日誌,jar包會直接上傳到遠端伺服器並打包成映象。

容器管理

  • 右鍵映象開啟選單,還可以直接建立容器;

  • 由於mall-tiny專案需要用到mysql和redis服務,我們可以先啟動它們;

  • 然後修改建立容器的配置,主要就是一些之前使用docker run命令的指定的一些配置;

  • 大家直接對照下之前使用的docker run命令,大概就能知道這些配置的作用了;
docker run -p 8080:8080 --name mall-tiny \
--link mysql:db \
--link redis:redis \
-e 'spring.profiles.active'=prod \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny/logs:/var/logs \
-d mall-tiny/mall-tiny:1.0.0-SNAPSHOT
  • 執行過程中可以直接在Log標籤中檢視容器的執行日誌,這確實很方便!

與容器互動

  • 通過容器皮膚我們可以檢視到很多容器內部資訊,比如檢視環境變數;

  • 還可以檢視容器的埠對映配置;

  • 還可以檢視之前通過docker inspect命令獲取的資訊,比如檢視容器執行的IP地址;

  • 還可以直接進入容器內部去執行命令,還記得之前使用的docker exec -it命令麼。

Docker Compose 支援

  • 使用該外掛也可以通過Docker Compose來部署應用,首先建立docker-compose.yml檔案,由於mysql容器沒有使用Docker Compose來建立,這裡改用IP來訪問;
version: '3'
services:
  redis:
    image: redis:5
    container_name: redis-tiny
    command: redis-server --appendonly yes
    volumes:
      - /mydata/redis-tiny/data:/data #資料檔案掛載
    ports:
      - 6379:6379
  mall-tiny:
    image: mall-tiny/mall-tiny:1.0.0-SNAPSHOT
    container_name: mall-tiny
    links:
      - redis:redis
    depends_on:
      - redis
    ports:
      - 8080:8080
    environment:
      - 'spring.profiles.active=prod'
      - 'spring.datasource.url=jdbc:mysql://192.168.3.105:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false'
      - 'spring.redis.host=redis'
    volumes:
      - /etc/localtime:/etc/localtime
      - /mydata/app/mall-tiny/logs:/var/logs
  • 然後直接點選docker-compose.yml檔案箭頭即可將應用部署到遠端伺服器,確實很方便!

總結

今天體驗了一把IDEA的官方Docker外掛,不使用命令列就可以實現遠端Docker映象與容器的管理,還支援Docker Compose部署,功能確實很強大!在平時開發過程中,使用這款外掛來打包、部署、執行SpringBoot應用確實很方便,感興趣的小夥伴可以嘗試下它!

參考資料

官方文件:https://www.jetbrains.com/hel...

專案原始碼地址

https://github.com/macrozheng...

相關文章