使用 Dockerfile 結合 docker-compose部署 spring boot 項目
1. 環境準備
安裝docker 環境
安裝構建工具 maven
準備自己的 spring boot 項目
2. docker 下載 jdk鏡像
此處使用openjdk:11
docker pull openjdk:11
3. 項目打包
使用maven package 命令 將項目 打成 jar 備用
- 可以直接使用 命令
mvn clean
mvn package
- 使用 idea maven 工具
- 打包完成後 jar包會存在於
4. 編寫Dockerfile文件
Dockerfile配置詳解解析 參見我的另一篇 博客 https://blog.csdn.net/qq_41692766/article/details/105666618
-
將jar 包拷貝到 指定 自己的 目錄下(隨意選取)
-
新建Dockerfile文件 (無後綴)
-
內容簡單示例
FROM openjdk:11 VOLUME /tmp #根據自己定義的項目名稱進行修改 ADD common-registcenter-0.0.1-SNAPSHOT.jar common-registcenter-0.0.1-SNAPSHOT.jar ENTRYPOINT ["java","-jar","/common-registcenter-0.0.1-SNAPSHOT.jar"]
-
鏡像構建
docker build -t register:0.1 .
注意結尾 一定有一個 英文格式句號 “.”
5. 編寫 docker-compose.yml 文件
docker-compose配置詳解解析 參見我的另一篇 博客 https://blog.csdn.net/qq_41692766/article/details/105666833
-
創建 docker-compose.yml文件並進行內容編寫
-
內容示例
version: "3" #版本號 services: # 服務名 eureka0: image: register:0.1 #使用的鏡像 ports: - "60010:60010" #暴露的端口信息和docker run -d -p 80:80 一樣 restart: "always" #重啓策略,能夠使服務保持始終運行,生產環境推薦使用 container_name: eureka0 #容器名稱 environment: spring.profiles.active: dev0 build: ./registcenter eureka1: image: register:0.1 #使用的鏡像 ports: - "60011:60011" #暴露的端口信息和docker run -d -p 80:80 一樣 restart: "always" #重啓策略,能夠使服務保持始終運行,生產環境推薦使用 container_name: eureka1 #容器名稱 environment: spring.profiles.active: dev1 build: ./registcenter eureka2: image: register:0.1 #使用的鏡像 ports: - "60012:60012" #暴露的端口信息和docker run -d -p 80:80 一樣 restart: "always" #重啓策略,能夠使服務保持始終運行,生產環境推薦使用 container_name: eureka2 #容器名稱 environment: spring.profiles.active: dev2 build: ./registcenter
6. 測試訪問
瀏覽器訪問 http://eureka0:60010
7. 代碼開源地址:
- spring boot項目地址:
https://gitee.com/twelfthLunarMonthFourteen/beauty0/tree/hotfix/common-distribute/common-registcenter - docker 源碼地址:
https://gitee.com/twelfthLunarMonthFourteen/pub_beauty/tree/hotfix/env-build/projects/common-distribute