欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Docker部署前后端分離項(xiàng)目的完整步驟

 更新時間:2023年01月09日 10:28:49   作者:小小印z  
剛剛接觸基礎(chǔ)的運(yùn)維工作,采用的是docker部署的方式,下面這篇文章主要給大家介紹了關(guān)于使用Docker部署前后端分離項(xiàng)目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

引言

使用若依項(xiàng)目來部署演示,代碼地址:RuoYi-Vue

首先在本地啟動若依項(xiàng)目,確保本地可以成功啟動:

部署需要用到的鏡像匯總:

(1)Redis鏡像

(2)MySQL鏡像

(3)后端工程自定義鏡像

(4)Nginx鏡像

鏡像:

[root@zy-host home]# docker images
REPOSITORY    TAG                IMAGE ID       CREATED         SIZE
ruoyi-admin   latest             9c91f33418ce   3 hours ago     807MB
nginx         latest             605c77e624dd   12 months ago   141MB
redis         latest             7614ae9453d1   12 months ago   113MB
mysql         latest             3218b38490ce   12 months ago   516MB
java          8                  d23bdf5b1b1b   5 years ago     643MB

 容器:

[root@zy-host home]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS          PORTS                                                  NAMES
5cc7296c0ae7   ruoyi-admin   "sh -c 'java $JAVA_O…"   3 hours ago    Up 3 hours      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              ruoyi-admin
fb5135730d4f   nginx         "/docker-entrypoint.…"   4 hours ago    Up 39 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp                      zy_nginx
62aede427243   mysql         "docker-entrypoint.s…"   6 hours ago    Up 6 hours      0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   zy_mysql
35ca274f4ec8   redis         "docker-entrypoint.s…"   15 hours ago   Up 15 hours     0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              zy_redis

下面介紹部署過程: 

1. Redis部署

(1)搜索Redis鏡像

[root@zy-host home]# docker search redis

(2)拉取Redis鏡像 

[root@zy-host home]# docker pull redis
 
[root@zy-host home]# docker images
REPOSITORY   TAG                IMAGE ID       CREATED         SIZE
redis        latest             7614ae9453d1   12 months ago   113MB

(3)創(chuàng)建Redis容器

[root@zy-host home]# docker run -d -p 6379:6379 --name zy_redis redis
35ca274f4ec8c3d2d1d4bb97c975cbd4a0bc95c943df2cfa2c3e17d997d1941b

2. MySQL部署

(1)拉取MySQL鏡像、

[root@zy-host ~]# docker pull mysql

(2)查看鏡像

[root@zy-host ~]# docker images
REPOSITORY    TAG                IMAGE ID       CREATED         SIZE
redis         latest             7614ae9453d1   12 months ago   113MB
mysql         latest             3218b38490ce   12 months ago   516MB

(3)啟動MySQL容器

[root@zy-host ~]# docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name zy_mysql mysql

(4)使用本地Navicat測試連接 

(5)導(dǎo)入sql文件

新建數(shù)據(jù)庫 ry_vue,導(dǎo)入項(xiàng)目所需的sql文件

3. 后端部署

(1)創(chuàng)建工作目錄

在云服務(wù)器的 /home 下創(chuàng)建 ruoyi 目錄,作為工作目錄:

[root@zy-host home]# mkdir ruoyi
[root@zy-host home]# ls
copy.txt  docker  mysql  ruoyi  test  tomcat

(2)修改配置文件

修改 application 配置文件中 MySQL 數(shù)據(jù)庫和 Redis 數(shù)據(jù)庫地址為云服務(wù)器地址:

(3)本地后端項(xiàng)目打包

在本地環(huán)境下,使用maven的 package 命令對后端項(xiàng)目打包(jar包):

(4)編寫 Dockerfile 文件

FROM java:8
VOLUME /tmp
ADD *.jar /app.jar
EXPOSE 8080
 
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

(5)上傳jar包和Dockerfile

將本地打好的jar包和Dockerfile文件上傳至云服務(wù)器的 /home/ruoyi 目錄下:

(6)創(chuàng)建鏡像

使用編寫的 Dockerfile 創(chuàng)建后臺項(xiàng)目的鏡像:

[root@zy-host ruoyi]# docker build -t ruoyi-admin .
Sending build context to Docker daemon  81.83MB
Step 1/5 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/5 : ADD *.jar /app.jar
 ---> 1acfeec0802e
Step 3/5 : CMD ["--server.port=8080"]
 ---> Running in 46fa3ac5952d
Removing intermediate container 46fa3ac5952d
 ---> 3fe6fec239b7
Step 4/5 : EXPOSE 8080
 ---> Running in 16b39dba98ec
Removing intermediate container 16b39dba98ec
 ---> 6ecd7fa673e1
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in 546854a2884b
Removing intermediate container 546854a2884b
 ---> 80e3109a3cab
Successfully built 80e3109a3cab
Successfully tagged ruoyi-admin:latest

查看構(gòu)建好的鏡像

[root@zy-host ruoyi]# docker images
REPOSITORY    TAG                IMAGE ID       CREATED          SIZE
ruoyi-admin   latest             80e3109a3cab   31 seconds ago   725MB

(7)使用構(gòu)建好的鏡像啟動容器

[root@zy-host ruoyi]# docker run -d -p 8080:8080 --name ruoyi-admin ruoyi-admin
3ab5d9246b3b15cfe6b0461ad0d99d0c7f71dff21ba0ba66bfb7b09b1b908438

(8)網(wǎng)頁訪問測試

訪問8080端口,可以看到后端工程啟動成功。

4. Nignx部署

(1)拉取nginx鏡像

[root@zy-host home]# docker pull nginx

(2)啟動一個nginx測試容器

啟動容器直接掛載目錄不行,需要使用一個nginx測試容器先把nginx相關(guān)配置文件拷貝出來,再掛載。

[root@zy-host home]# docker run -d -p 80:80 --name zy_nginx_test nginx

(3)拷貝測試容器內(nèi)容

在宿主機(jī) /usr/local/nginx目錄下新建三個目錄:conf 、html、log

[root@zy-host nginx]# pwd
/usr/local/nginx
[root@zy-host nginx]# mkdir {conf,html,log}
[root@zy-host nginx]# ls
conf  html  log

 將測試容器對應(yīng)內(nèi)容拷貝到宿主機(jī)中:

[root@zy-host nginx]# docker cp zy_nginx_test:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf

(4)刪除測試容器

將剛才nginx的測試容器刪除

[root@zy-host nginx]# docker rm -f zy_nginx_test

(5)啟動新的 nginx 容器

[root@zy-host nginx]# docker run -d --restart=always --privileged=true --name zy_nginx -p 80:80 \
-v /usr/local/nginx/cert:/etc/nginx/cert \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/log:/var/log/nginx \
nginx

-d:后臺運(yùn)行

--restart=always:自啟動

--privileged=true:表示擁有更多的權(quán)限

--name 容器命名

-p 宿主機(jī)端口和容器端口的映射

-v 宿主機(jī)目錄和容器目錄的映射

(6)訪問測試

訪問云服務(wù)器公網(wǎng)地址,可以看到nginx部署成功。

(7)查看掛載情況

[root@zy-host nginx]# docker inspect zy_nginx
 
"Mounts": [
            {
                "Type": "bind",
                "Source": "/usr/local/nginx/html",
                "Destination": "/usr/share/nginx/html",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/usr/local/nginx/log",
                "Destination": "/var/log/nginx",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/usr/local/nginx/cert",
                "Destination": "/etc/nginx/cert",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/usr/local/nginx/conf/nginx.conf",
                "Destination": "/etc/nginx/nginx.conf",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

5. 前端部署

(1)修改配置文件

修改前端工程 vue.config.js 文件,target修改為 云服務(wù)器 地址

(2)前臺工程打包 

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

打好包之后前端工程目錄下會出現(xiàn)一個dist文件夾:

(3)上傳dist包

將dist包上傳至云服務(wù)器宿主機(jī) /usr/local/nginx/html 目錄下:

(4)編輯nginx配置文件

修改 宿主機(jī) /usr/local/nginx/conf 目錄下的 nginx.conf文件:

[root@zy-host conf]# pwd
/usr/local/nginx/conf
[root@zy-host conf]# vim nginx.conf 

修改后的文件內(nèi)容如下:

[root@zy-host conf]# vim nginx.conf 
[root@zy-host conf]# cat nginx.conf 
 
user  nginx;
worker_processes  auto;
 
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
    include /etc/nginx/conf.d/*.conf;
    
    server {
	listen 80;
	server_name 39.107.232.89
	charset utf-8;
	
	location / {
	    root /usr/share/nginx/html/dist; #前端工程存放路徑,注意這里的路徑是容器內(nèi)的,不是宿主機(jī)的
	    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://39.107.232.89:8080/; # 后端項(xiàng)目的發(fā)布地址加端口
	}
    }
}

(4)重啟nginx容器

需要重啟nginx容器之后,修改的配置文件內(nèi)容才會同步過去。

[root@zy-host html]# docker restart zy_nginx

(5)訪問測試

總結(jié)

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

相關(guān)文章

最新評論