再見命令列!一鍵部署應用到遠端伺服器,IDEA官方Docker外掛真香!
Docker作為目前主流的容器技術,使用它部署應用是非常方便的!對於這款主流容器技術,IDEA官方自然也是有所支援的。最近體驗了一把IDEA官方提供的外掛,確實非常好用,今天我們以SpringBoot應用的打包部署為例,來聊聊IDEA官方Docker外掛的使用!
SpringBoot實戰電商專案mall(50k+star)地址:http://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
檔案箭頭即可將應用部署到遠端伺服器,確實很方便!
- 部署完成後即可訪問專案的Swagger頁面,訪問地址:http://192.168.3.105:8080/swagger-ui/
總結
今天體驗了一把IDEA的官方Docker外掛,不使用命令列就可以實現遠端Docker映象與容器的管理,還支援Docker Compose部署,功能確實很強大!在平時開發過程中,使用這款外掛來打包、部署、執行SpringBoot應用確實很方便,感興趣的小夥伴可以嘗試下它!
參考資料
官方文件:http://www.jetbrains.com/help/idea/docker.html
專案原始碼地址
http://github.com/macrozheng/mall-tiny
- 還在用HttpUtil?SpringBoot 3.0全新HTTP客戶端工具來了,用起來夠優雅!
- Markdown還能這麼玩?這款開源神器絕了!
- MyBatis這樣用,同事直呼哇塞,堪稱最佳實踐!
- MyBatis-Plus同款Elasticsearch ORM框架,用起來夠優雅!
- 告別if else!試試這款輕量級流程引擎吧,自帶IDEA外掛真香!
- 堪稱一站式管理平臺,同時支援Linux、MySQL、Redis、MongoDB視覺化管理!
- 5分鐘自建資料庫視覺化平臺,線上管理資料庫也太方便了!
- 我上線了一個炫酷的專案實戰教程網站,主流技術一網打盡!
- 10 款更先進的開源命令列工具,太炫酷了!
- 看了我常用的IDEA外掛,同事也開始悄悄安裝了...
- 推薦一款微軟出品的開發神器,體驗不輸IDEA!
- 老版本Typora強制付費!試試這款開源替代品!
- 僅需一個依賴給Swagger換上新面板,既簡單又炫酷!
- 支援Nacos 2.1.0!這套Spring Cloud Gateway Oauth2 微服務許可權終極解決方案升級了!
- 還在用命令列看日誌?快用Kibana吧,視覺化日誌分析YYDS!
- Mall電商實戰專案全面升級!支援最新版SpringBoot,徹底解決迴圈依賴...
- 阿里出品!SpringBoot應用自動化部署神器,IDEA版Jenkins?
- 再見命令列!一鍵部署應用到遠端伺服器,IDEA官方Docker外掛真香!
- 還在用Navicat?這款開源的資料庫管理工具介面更炫酷!
- 還在從零開始搭建專案?這款升級版快速開發腳手架值得一試!