Docker部署SpringBoot+MySQL項目

本文將講述使用Dockerfile爲SpringBoot項目構建docker鏡像並部署,此種方式不需要依賴自建的鏡像倉庫,只需要應用的jar包和一個Dockerfile文件即可。

1.編寫Dockerfile文件

# 該鏡像需要依賴的基礎鏡像
FROM java:8

# 指定維護者的名字
MAINTAINER cxhello

# 將指定目錄下的jar包複製到docker容器的/export/Apps/springboot-admin目錄下
COPY springboot-admin-0.0.1-SNAPSHOT.jar /export/Apps/springboot-admin/springboot-admin-0.0.1-SNAPSHOT.jar

# 聲明服務運行在8080端口
EXPOSE 8080

# 指定docker容器啓動時運行jar包
ENTRYPOINT ["java", "-jar","/export/Apps/springboot-admin/springboot-admin-0.0.1-SNAPSHOT.jar"]

2.構建docker mysql鏡像

# 1.下載mysql鏡像
docker pull mysql:5.5

# 2.創建mysql容器並啓動
docker run -p 3306:3306 --name mysql \
-v /export/mysql/conf:/etc/mysql \
-v /export/mysql/log:/var/log/mysql \
-v /export/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456  \
-d mysql:5.5

# 3.將sql腳本拷貝到mysql容器的根目錄下
docker cp /export/Apps/springboot-admin/data.sql mysql:/;

# 4.進入運行mysql的docker容器
docker exec -it 744d466a180b /bin/bash

# 5.使用mysql命令打開客戶端
mysql -uroot -p123456 --default-character-set=utf8

# 6.修改root帳號的權限,使得任何ip都能訪問
grant all privileges on *.* to 'root'@'%';

# 7.創建springboot_admin數據庫:
create database springboot_admin character set utf8;

# 8.將sql文件導入到數據庫
use springboot_admin;
source /data.sql;

3.使用Maven打包應用

將maven打包好的jar包和Dockerfile上傳到指定路徑下進行構建docker鏡像,構建的時候要在Dockerfile文件的路徑下進行操作

4.構建docker springboot應用鏡像

# 1.構建docker springboot應用鏡像
docker build -t springboot-admin/springboot-admin:0.0.1-SNAPSHOT .

# 2.創建容器並啓動
docker run -d -p 80:8080 \
--name springboot-admin \
--link mysql:db \
-v /export/Logs/springboot-admin:/export/Logs/springboot-admin \
springboot-admin/springboot-admin:0.0.1-SNAPSHOT

# 3.進入運行項目的docker容器
docker exec -it springboot-admin /bin/bash

# 4.查看運行項目的日誌
docker logs -f springboot-admin

5.注意事項

項目使用的MySQL服務也是基於Docker的,所以在使用Maven打包之前,需要修改一下數據庫的連接配置(應用鏡像需要關聯mysql鏡像,所以數據庫配置改成別名)

--link可以用來鏈接2個容器,使得源容器(被鏈接的容器)和接收容器(主動去鏈接的容器)之間可以互相通信。

# 其中mysql是指一個name爲mysql的容器,db爲爲其指定的別名
docker run -d -p 80:8080 \
--name springboot-admin \
--link mysql:db \
-v /export/Logs/springboot-admin:/export/Logs/springboot-admin \
springboot-admin/springboot-admin:0.0.1-SNAPSHOT

中間在部署的時候出現了一些問題,項目打包的時候總是出錯,報類似數據庫連接的錯誤,這說明應該是你的pom.xml裏面沒有配置打包的時候跳過測試,在pom.xml添加 <skipTests>true</skipTests> 這一行,再次運行就可以了。

<properties>
	<java.version>1.8</java.version>
	<skipTests>true</skipTests>
</properties>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章