這篇文章給大家介紹如何使用Docker部署Spring Boot開源,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、輝南網(wǎng)絡(luò)推廣、微信小程序、輝南網(wǎng)絡(luò)營(yíng)銷、輝南企業(yè)策劃、輝南品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供輝南建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
云收藏項(xiàng)目已經(jīng)開源2年多了,作為當(dāng)初剛開始學(xué)習(xí) Spring Boot 的練手項(xiàng)目,使用了很多當(dāng)時(shí)很新的技術(shù),現(xiàn)在看來(lái)其實(shí)很多新技術(shù)是沒(méi)有必要使用的,但做為學(xué)習(xí)案例來(lái)講確實(shí)是一個(gè)絕佳的 Spring Boot 實(shí)踐。
從開源到現(xiàn)在,寫了一些教程給大家介紹如何部署云收藏,如何在IDE中運(yùn)行云收藏,但是仍然有很多的朋友不知道如何使用,如何部署?就像“請(qǐng)?zhí)峁┮环菰剖詹財(cái)?shù)據(jù)結(jié)構(gòu)” 這樣的問(wèn)題我至少都回答了一百多次,并且在 github 關(guān)閉了近十個(gè)類似的問(wèn)題。
這也從另外一個(gè)方面可以看出,部署云收藏項(xiàng)目對(duì)一些朋友還是比較復(fù)雜,現(xiàn)在有了 Docker 我們就可以愉快的解決這個(gè)問(wèn)題,只需三步就可以部署云收藏項(xiàng)目,打造專屬個(gè)人的收藏系統(tǒng)。
一些朋友可能還不了解云收藏,給大家簡(jiǎn)單介紹一下:
云收藏是一個(gè)使用 Spring Boot 構(gòu)建的開源網(wǎng)站,可以讓用戶在線隨時(shí)隨地收藏的一個(gè)網(wǎng)站,在網(wǎng)站上分類整理收藏的網(wǎng)站或者文章,可以作為稍后閱讀的一個(gè)臨時(shí)存放。作為一個(gè)開放開源的軟件,可以讓用戶從瀏覽器將收藏夾內(nèi)容導(dǎo)入到云收藏,也支持隨時(shí)將云收藏收集的文章導(dǎo)出去做備份。
產(chǎn)品主頁(yè)
http://favorites.ren
項(xiàng)目主頁(yè)
https://github.com/cloudfavorites/favorites-web
核心功能點(diǎn):
收藏、分類、檢索文章
導(dǎo)出、導(dǎo)出(包活從瀏覽器中)
可以點(diǎn)贊、分享、討論
注冊(cè)、登錄、個(gè)人賬戶
臨時(shí)收藏、查看別人收藏
其它...
項(xiàng)目使用技術(shù):
Vue
Bootstrap
jQuery
Thymeleaf
Spring Data Jpa
Spring Boot Mail
WebJars
MySQL
Tomcat
redis
Redis 后期去掉是由于服務(wù)器資源有限和部署麻煩
依賴環(huán)境
準(zhǔn)備一臺(tái)系統(tǒng)為 Centos 7 以上的服務(wù)器,系統(tǒng)需要安裝 Docker 和 Docker Compos 環(huán)境,安裝方法可以參考前面兩篇文章:
Docker(一):Docker入門教程
Docker(四):Docker 三劍客之 Docker Compose
Docker 化改造
項(xiàng)目改造后的項(xiàng)目機(jī)構(gòu)圖
這里主要描述新增內(nèi)容。
docker-compose.yaml
文件
我們首先來(lái)看一下docker-compose.yaml
文件:
version: '3' services: nginx: container_name: favorites-nginx image: nginx:1.13 restart: always ports: - 80:80 - 443:443 volumes: - ./nginx/conf.d:/etc/nginx/conf.d - /tmp/logs:/var/log/nginx mysql: build: ./mysql environment: MYSQL_DATABASE: favorites MYSQL_ROOT_PASSWORD: root MYSQL_ROOT_HOST: '%' TZ: Asia/Shanghai ports: - "3306:3306" volumes: - ./mysql_data:/var/lib/mysql restart: always app: restart: always build: ./app working_dir: /app volumes: - ./app:/app - ~/.m2:/root/.m2 - /tmp/logs:/usr/local/logs expose: - "8080" command: mvn clean spring-boot:run -Drun.profiles=docker depends_on: - nginx - mysql
相對(duì)上一篇內(nèi)容本次的docker-compose.yaml
文件主要新增了兩部分的內(nèi)容:
1、將 Nginx 和 app 的日志映射到宿主機(jī)上,方便我們查看日志
2、將 Mysql 的數(shù)據(jù)存儲(chǔ)映射到宿主機(jī)上,這樣的好處是不至于將集群關(guān)掉之后數(shù)據(jù)丟失
docker-compose.yaml
文件中,日志部分:
version: '3' services: nginx: volumes: - /tmp/logs:/var/log/nginx app: volumes: - /tmp/logs:/usr/local/logs
分別將 Nginx 和云收藏項(xiàng)目日志映射到宿主機(jī)的/tmp/logs
,方便我們查看項(xiàng)目日志。
定制 mysql 初始化信息
docker-compose.yaml
文件中,Mysql 變化內(nèi)容:
version: '3' services: mysql: build: ./mysql environment: TZ: Asia/Shanghai volumes: - ./mysql_data:/var/lib/mysql
我將有變化的內(nèi)容都摘了出來(lái),mysql 新增了 TZ 環(huán)境變量將時(shí)區(qū)指向上海,另外我們將 Mysql 鏡像內(nèi)容提出來(lái),放到項(xiàng)目的 mysql 目錄下單獨(dú)構(gòu)建。mysql 目錄下有兩個(gè)文件,一個(gè)是 Dockerfile 定義 Mysql 鏡像,一個(gè)是 my.cnf 文件定義 Mysql 編碼等信息。
my.cnf 文件內(nèi)容
#省略一部分 ... character_set_server=utf8 character_set_filesystem=utf8 collation-server=utf8_general_ci init-connect='SET NAMES utf8' init_connect='SET collation_connection = utf8_general_ci' skip-character-set-client-handshake
此文件主要的作用是讓 Mysql 支持 UTF-8.
Dockerfile 文件內(nèi)容
FROM mysql/mysql-server:5.7 COPY my.cnf /etc/my.cnf
使用 Mysql5.7 版本,并且將同目錄下的 my.cnf 拷貝到服務(wù)器/etc/my.cnf
中
這樣 Mysql 的相關(guān)信息就定義好了。
其它
其它內(nèi)容變化不大,nginx 目錄下存放著 Nginx 的配置文件,項(xiàng)目新增application-docker.properties
文件,將數(shù)據(jù)庫(kù)連接部分修改即可。
改造完成之后,我們只需要將項(xiàng)目拷貝到部署服務(wù)器然后執(zhí)行:docker-compose up
就可以啟動(dòng)。
我已經(jīng)將項(xiàng)目的改造內(nèi)容提交到 github 上面,這樣大家部署的時(shí)候僅需要三步,即可成功部署云收藏項(xiàng)目。
1、下載源碼解壓
下載最新發(fā)布版本
wget https://github.com/cloudfavorites/favorites-web/archive/favorites-1.1.1.zip
解壓
unzip favorites-1.1.1.zip
進(jìn)入目錄
cd favorites-web-favorites-1.1.1/
2、修改配置文件
修改文件application-docker.properties
vi app/src/main/resources/application-docker.properties
修改內(nèi)容如下
favorites.base.path=http://xx.xxx.xx.xx/
地址為部署服務(wù)器的地址
3、啟動(dòng)項(xiàng)目
配置完成后,后臺(tái)啟動(dòng)
[root@~]# docker-compose up -d Creating network "favoriteswebfavorites111_default" with the default driver Creating favorites-nginx ... done Creating favoriteswebfavorites111_mysql_1 ... done Creating favoriteswebfavorites111_app_1 ... done
啟動(dòng)完成后,瀏覽器訪問(wèn)上面配置地址:http://xx.xxx.xx.xx/
,就可以看到云收藏的首頁(yè)了。
輔助內(nèi)容
啟動(dòng)后想查看某個(gè)容器內(nèi)的服務(wù)運(yùn)行情況,可以使用以下命令進(jìn)入:
使用docker ps
查看宿主機(jī)上面運(yùn)行的 Docker 容器
[root@VM_73_217_centos ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a466ce6e58a5 favoriteswebfavorites111_app "/usr/local/bin/mv..." 16 hours ago Up 16 hours 8080/tcp favoriteswebfavorites111_app_1 1b4f1b912de0 nginx:1.13 "nginx -g 'daemon ..." 16 hours ago Up 16 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp favorites-nginx 65b481bb7741 favoriteswebfavorites111_mysql "/entrypoint.sh my..." 16 hours ago Up 16 hours (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp favoriteswebfavorites111_mysql_1
根據(jù)上面查詢的 Docker 容器 ID 信息,執(zhí)行下面命令
docker exec -ti CONTAINER_ID bash #比如進(jìn)入項(xiàng)目容器中 [root@VM_73_217_centos ~]# docker exec -ti a466ce6e58a5 bash root@a466ce6e58a5:/app# ps -ef|grep java ...
退出容器執(zhí)行以下命令:
root@a466ce6e58a5:/app# exit exit [root@VM_73_217_centos ~]#
這樣以后如果我們想部署云收藏項(xiàng)目就變的非常簡(jiǎn)單,僅僅需要三步可以愉快的搭建自己的收藏系統(tǒng)了。
關(guān)于如何使用Docker部署Spring Boot開源就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。