日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 前言
  • 一、安裝Docker和docker Compose
  • 二、準(zhǔn)備工作
    • 1. 新建工作目錄
    • 2. 工作目錄結(jié)構(gòu)
    • 3. 后臺打包
    • 4. 前臺打包
    • 5. 數(shù)據(jù)庫文件上傳
    • 6. 編寫Dockerfile
    • 7. 編寫 docker-compose.yml 文件
    • 8. 構(gòu)建并啟動
  • 補充:YAML文件格式及編寫注意事項
    • 總結(jié)

      前言

      前面的博客介紹了使用 Docker 部署前后端分離項目:使用Docker部署前后端分離項目

      接下來介紹如何使用 Docker Compose部署前后端分離項目,依舊以若依項目為例。 

      一、安裝Docker和docker Compose

      (1)Docker安裝

      [root@zy-host /]# yum install -y yum-utils device-mapper-persistent-data lvm2
      [root@zy-host /]# yum install docker-ce docker-ce-cli containerd.io

      (2)Docker Compose安裝

      [root@zy-host home]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
      [root@zy-host home]# chmod +x /usr/local/bin/docker-compose

      (3)查看版本信息

      [root@zy-host home]# docker --version
      Docker version 20.10.22, build 3a2c30b
      [root@zy-host home]# docker-compose --version
      docker-compose version 1.25.1, build a82fef07

      二、準(zhǔn)備工作

      這里可以參考若依官方文檔:集成docker實現(xiàn)一鍵部署| RuoYi

      1. 新建工作目錄

      在 /home 目錄下新建目錄 ruoyi2,作為工作目錄。

      [root@zy-host home]# mkdir ruoyi2
      

      2. 工作目錄結(jié)構(gòu)

      • 其中db目錄存放ruoyi數(shù)據(jù)庫腳本
      • 其中jar目錄存放打包好的jar應(yīng)用文件
      • 其中conf目錄存放redis.conf和nginx.conf配置
      • 其中html\dist目錄存放打包好的靜態(tài)頁面文件
      • 數(shù)據(jù)庫mysql地址需要修改成ruoyi-mysql
      • 緩存redis地址需要修改成ruoyi-redis
      • 數(shù)據(jù)庫腳本頭部需要添加SET NAMES 'utf8';(防止亂碼)
      [root@zy-host ruoyi2]# tree ./
      ./
      ├── conf
      │   ├── nginx.conf
      │   └── redis.conf
      ├── db
      ├── docker-compose.yml
      ├── html
      │   └── dist
      ├── jar
      ├── mysql-dockerfile
      ├── nginx-dockerfile
      ├── redis-dockerfile
      └── ruoyi-dockerfile

      nginx.conf文件內(nèi)容:

      [root@zy-host conf]# cat nginx.conf 
      worker_processes  1;
       
      events {
          worker_connections  1024;
      }
       
      http {
          include       mime.types;
          default_type  application/octet-stream;
          sendfile        on;
          keepalive_timeout  65;
       
          server {
              listen       80;
              server_name  localhost;
       
      		location / {
                  root   /home/ruoyi/projects/ruoyi-ui;
      			try_files $uri $uri/ /index.html;
                  index  index.html index.htm;
              }
      		
      		location /prod-api/{
      			proxy_set_header Host $http_host;
      			proxy_set_header X-Real-IP $remote_addr;
      			proxy_set_header REMOTE-HOST $remote_addr;
      			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      			proxy_pass http://ruoyi-server:8080/;
      		}
       
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      }

       redis.conf文件內(nèi)容:

      # requirepass 123456

      3. 后臺打包

      修改后臺配置文件,修改MySQL地址為和Redis地址為 云服務(wù)器IP

      教你使用Docker?Compose一鍵部署前后端分離項目

      教你使用Docker?Compose一鍵部署前后端分離項目

        package 打包,將打好的jar包上傳至工作目錄下的 jar 目錄中:

      教你使用Docker?Compose一鍵部署前后端分離項目

      4. 前臺打包

      前臺打 dist 包,上傳至工作目錄的 html 目錄下:

      # 構(gòu)建生產(chǎn)環(huán)境
      npm run build:prod

      教你使用Docker?Compose一鍵部署前后端分離項目

      5. 數(shù)據(jù)庫文件上傳

      在sql文件頭部添加:SET NAMES 'utf8'; 防止亂碼,然后將sql文件上傳至工作目錄的 db 目錄下:

      教你使用Docker?Compose一鍵部署前后端分離項目

      6. 編寫Dockerfile

      (1)mysql-dockerfile

      mysql-dockerfile 文件內(nèi)容如下:

      # 基礎(chǔ)鏡像
      FROM mysql:5.7
      # author
      MAINTAINER ruoyi
       
      # 執(zhí)行sql腳本
      ADD ./db/*.sql /docker-entrypoint-initdb.d/

      (2)nginx-dockerfile

      nginx-dockerfile 文件內(nèi)容如下:

      在容器內(nèi)創(chuàng)建 /home/ruoyi/projects/ruoyi-ui目錄,并將該目錄與宿主機掛載。

      # 基礎(chǔ)鏡像
      FROM nginx
      # author
      MAINTAINER ruoyi
       
      # 掛載目錄
      VOLUME /home/ruoyi/projects/ruoyi-ui
      # 創(chuàng)建目錄
      RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
      # 指定路徑
      WORKDIR /home/ruoyi/projects/ruoyi-ui
      # 復(fù)制conf文件到路徑
      COPY ./conf/nginx.conf /etc/nginx/nginx.conf
      # 復(fù)制html文件到路徑
      COPY ./html/dist /home/ruoyi/projects/ruoyi-ui

      (3)redis-dockerfile

      redis-dockerfile文件內(nèi)容如下:

      # 基礎(chǔ)鏡像
      FROM redis
      # author
      MAINTAINER ruoyi
       
      # 掛載目錄
      VOLUME /home/ruoyi/redis
      # 創(chuàng)建目錄
      RUN mkdir -p /home/ruoyi/redis
      # 指定路徑
      WORKDIR /home/ruoyi/redis
      # 復(fù)制conf文件到路徑
      COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf

      (4)ruoyi-dockerfile

      ruoyi-dockerfile文件內(nèi)容如下:

      # 基礎(chǔ)鏡像
      FROM java:8
      # author
      MAINTAINER ruoyi
       
      # 掛載目錄
      VOLUME /home/ruoyi
      # 創(chuàng)建目錄
      RUN mkdir -p /home/ruoyi
      # 指定路徑
      WORKDIR /home/ruoyi
      # 復(fù)制jar文件到路徑
      COPY ./jar/*.jar /home/ruoyi/ruoyi.jar
      # 啟動應(yīng)用
      ENTRYPOINT ["java","-jar","ruoyi.jar"]

      7. 編寫 docker-compose.yml 文件

      docker-compose.yml 文件內(nèi)容如下:

      version : '3'
      services:
        ruoyi-mysql:
          container_name: ruoyi-mysql
          image: mysql:5.7
          build:
            context: .
            dockerfile: mysql-dockerfile
          ports:
            - "3306:3306"
          volumes:
            - ./mysql/conf:/etc/mysql/conf.d
            - ./mysql/logs:/logs
            - ./mysql/data:/var/lib/mysql
          command: [
                'mysqld',
                '--innodb-buffer-pool-size=80M',
                '--character-set-server=utf8mb4',
                '--collation-server=utf8mb4_unicode_ci',
                '--default-time-zone=+8:00',
                '--lower-case-table-names=1'
              ]
          environment:
            MYSQL_DATABASE: 'ry-vue'
            MYSQL_ROOT_PASSWORD: zhangyin  #數(shù)據(jù)庫root用戶密碼
        ruoyi-redis:
          container_name: ruoyi-redis
          image: redis
          build:
            context: .
            dockerfile: redis-dockerfile
          ports:
            - "6379:6379"
          volumes:
            - ./conf/redis.conf:/home/ruoyi/redis/redis.conf
            - ./redis/data:/data
          command: redis-server /home/ruoyi/redis/redis.conf
        ruoyi-nginx:
          container_name: ruoyi-nginx
          image: nginx
          build:
            context: .
            dockerfile: nginx-dockerfile
          ports:
            - "80:80"
          volumes:
            - ./html/dist:/home/ruoyi/projects/ruoyi-ui
            - ./conf/nginx.conf:/etc/nginx/nginx.conf
            - ./nginx/logs:/var/log/nginx
            - ./nginx/conf.d:/etc/nginx/conf.d
          depends_on:
            - ruoyi-server
          links:
            - ruoyi-server
        ruoyi-server:
          container_name: ruoyi-server
          build:
            context: .
            dockerfile: ruoyi-dockerfile
          ports:
            - "8080:8080"
          volumes:
            - ./ruoyi/logs:/home/ruoyi/logs
            - ./ruoyi/uploadPath:/home/ruoyi/uploadPath
          depends_on:
            - ruoyi-mysql
            - ruoyi-redis
          links:
            - ruoyi-mysql
            - ruoyi-redis

      8. 構(gòu)建并啟動

      (1)構(gòu)建docker服務(wù)

      [root@zy-host ruoyi2]# docker-compose build
      

      (2)啟動docker容器

      [root@zy-host ruoyi2]# docker-compose up -d

      (3)查看容器

      [root@zy-host ruoyi2]# docker ps
      CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
      c61cd8b2b476   nginx                 "/docker-entrypoint.…"   47 seconds ago   Up 45 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp                      ruoyi-nginx
      c39f8deda702   ruoyi2_ruoyi-server   "java -jar ruoyi.jar"    48 seconds ago   Up 46 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              ruoyi-server
      3d5daf878fbb   redis                 "docker-entrypoint.s…"   49 seconds ago   Up 48 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              ruoyi-redis
      58568121a480   mysql:5.7             "docker-entrypoint.s…"   49 seconds ago   Up 48 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   ruoyi-mysql

      (4)瀏覽器訪問測試

      可以正常顯示頁面,表名環(huán)境搭建成功。

      教你使用Docker?Compose一鍵部署前后端分離項目

      補充:YAML文件格式及編寫注意事項

      注:docker-compose使用yaml文件對容器進行描述

      YAML是一種標(biāo)記語言很直觀的數(shù)據(jù)序列化格式,可讀性高。類似于XML數(shù)據(jù)描述語言,語法比XML簡單的很多。

      YAML數(shù)據(jù)結(jié)構(gòu)通過縮進來表示,連續(xù)的項目通過減號來表示,鍵值對用冒號分隔,數(shù)組用中括號括起來,hash用花括號括起來。

      YAML文件格式注意事項:

      1.不支持制表符tab鍵縮進,需要使用空格縮進

      2.通常開頭縮進2個空格

      3.字符后縮進1個空格,如冒號、逗號、橫桿

      4.用井號注釋

      5.如果包含特殊字符用單引號引起來

      6.布爾值(true、false、yes、no、on、off)必須用引號括起來,這樣分 析器會將他們解釋為字符串。

      總結(jié)

      分享到:
      標(biāo)簽:一鍵 分離 后端 教你 部署
      用戶無頭像

      網(wǎng)友整理

      注冊時間:

      網(wǎng)站:5 個   小程序:0 個  文章:12 篇

      • 51998

        網(wǎng)站

      • 12

        小程序

      • 1030137

        文章

      • 747

        會員

      趕快注冊賬號,推廣您的網(wǎng)站吧!
      最新入駐小程序

      數(shù)獨大挑戰(zhàn)2018-06-03

      數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

      答題星2018-06-03

      您可以通過答題星輕松地創(chuàng)建試卷

      全階人生考試2018-06-03

      各種考試題,題庫,初中,高中,大學(xué)四六

      運動步數(shù)有氧達人2018-06-03

      記錄運動步數(shù),積累氧氣值。還可偷

      每日養(yǎng)生app2018-06-03

      每日養(yǎng)生,天天健康

      體育訓(xùn)練成績評定2018-06-03

      通用課目體育訓(xùn)練成績評定