如何使用Docker部署SpringBoot開源

這篇文章給大家介紹如何使用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)址:muchs.cn

云收藏項(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ù)器資源有限和部署麻煩

項(xiàng)目改造

依賴環(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í)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

名稱欄目:如何使用Docker部署SpringBoot開源
本文網(wǎng)址:http://muchs.cn/article38/jepepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、小程序開發(fā)、網(wǎng)站收錄、全網(wǎng)營(yíng)銷推廣、網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站