最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你使用Docker?Compose一鍵部署前后端分離項(xiàng)目

 更新時(shí)間:2023年01月09日 10:36:59   作者:小小印z  
Compose是一個(gè)定義和管理多容器的工具,使用Python語言編寫,下面這篇文章主要給大家介紹了關(guān)于如何使用Docker?Compose一鍵部署前后端分離項(xiàng)目的相關(guān)資料,需要的朋友可以參考下

前言

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

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

一、安裝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實(shí)現(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. 后臺(tái)打包

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

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

4. 前臺(tái)打包

前臺(tái)打 dist 包,上傳至工作目錄的 html 目錄下:

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

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

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

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目錄,并將該目錄與宿主機(jī)掛載。

# 基礎(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
# 啟動(dòng)應(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)建并啟動(dòng)

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

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

(2)啟動(dòng)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)瀏覽器訪問測(cè)試

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

補(bǔ)充:YAML文件格式及編寫注意事項(xiàng)

注:docker-compose使用yaml文件對(duì)容器進(jìn)行描述

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

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

YAML文件格式注意事項(xiàng):

1.不支持制表符tab鍵縮進(jìn),需要使用空格縮進(jìn)

2.通常開頭縮進(jìn)2個(gè)空格

3.字符后縮進(jìn)1個(gè)空格,如冒號(hào)、逗號(hào)、橫桿

4.用井號(hào)注釋

5.如果包含特殊字符用單引號(hào)引起來

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

總結(jié)

到此這篇關(guān)于使用Docker Compose一鍵部署前后端分離項(xiàng)目的文章就介紹到這了,更多相關(guān)Docker Compose部署前后端分離項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker容器中文亂碼(修改docker容器編碼格式)的解決方案

    Docker容器中文亂碼(修改docker容器編碼格式)的解決方案

    這篇文章主要介紹了Docker容器中文亂碼(修改docker容器編碼格式)的解決方案的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Docker中實(shí)現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實(shí)戰(zhàn)詳解

    Docker中實(shí)現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實(shí)戰(zhàn)詳解

    持續(xù)集成(CI/CD)是一種軟件開發(fā)的經(jīng)驗(yàn)總結(jié),它用于幫助開發(fā)團(tuán)隊(duì)和交付團(tuán)隊(duì)實(shí)現(xiàn)頻繁且快速的集成,以及測(cè)試他們的工作成果,以盡可能快地發(fā)現(xiàn)項(xiàng)目開發(fā)和交付工程中的錯(cuò)誤,本文就給大家詳細(xì)的介紹一下Docker中如何實(shí)現(xiàn)CI和CD,需要的朋友可以參考下
    2023-08-08
  • 使用docker-compose實(shí)現(xiàn)不停機(jī)部署/灰度發(fā)布的四種方法

    使用docker-compose實(shí)現(xiàn)不停機(jī)部署/灰度發(fā)布的四種方法

    灰度發(fā)布是一種軟件部署策略,它允許將新版本的部分功能或服務(wù)逐步推送給用戶,而不是一次性對(duì)所有用戶進(jìn)行大規(guī)模更新,本文主要給大家介紹了使用docker-compose實(shí)現(xiàn)不停機(jī)部署/灰度發(fā)布的四種方法,需要的朋友可以參考下
    2024-11-11
  • Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn)

    Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn)

    本文主要介紹了Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐

    SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐

    Spring Boot和Docker,可以方便地將應(yīng)用程序部署到不同的環(huán)境中,本文主要介紹了SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Docker搭建本地私有倉庫的詳細(xì)步驟

    Docker搭建本地私有倉庫的詳細(xì)步驟

    本篇文章主要介紹了Docker搭建本地私有倉庫的詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • docker-registry使用筆記

    docker-registry使用筆記

    在國(guó)內(nèi)docker-hub是肯定用不了的,不解釋:所以最好還是建一個(gè)私有的docker-registry,存儲(chǔ)一些常用的images方便隨時(shí)pull
    2016-09-09
  • 如何使用Docker定時(shí)備份數(shù)據(jù)

    如何使用Docker定時(shí)備份數(shù)據(jù)

    這篇文章主要介紹了如何使用Docker定時(shí)備份數(shù)據(jù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-04-04
  • Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)

    Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)

    這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn)

    docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn)

    本文主要介紹了docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08

最新評(píng)論

遂川县| 崇信县| 莱阳市| 杭锦旗| 青河县| 柘城县| 济阳县| 巴楚县| 体育| 郴州市| 蕉岭县| 巧家县| 清水河县| 安乡县| 卓资县| 辽宁省| 饶河县| 禹州市| 多伦县| 时尚| 临潭县| 邮箱| 莆田市| 交口县| 定日县| 日照市| 淮阳县| 珲春市| 桑日县| 仪陇县| 屏边| 呼和浩特市| 汉川市| 宝兴县| 固原市| 咸阳市| 松江区| 大竹县| 黔东| 新宾| 泗阳县|