Docker部署前后端项目

一.安装docker

1.Cento安装docker

安装命令

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2.Docker开启远程访问权限

#修改Docker服务文件,需要先切换到root用户
vim /lib/systemd/system/docker.service
#注释掉"ExecStart"这一行,并添加下面这一行信息
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

修改完成之后重新加载环境配置变量

#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker.service
#查看配置的端口号(2375)是否开启(非必要)
netstat -nlpt  #如果找不到netstat命令,可以先安装一下这个工具,具体百度

效果如下,默认开启的是2375端口

Untitled.png

二.docker部署ods前端项目

💡 思路:将vite项目构建成dist文件,这里面的都是静态文件。docker拉取一个nginx镜像,然后将默认路径指向dist里的内容,即可访问页面资源。然后将配置nginx代理后端路径即可

1.安装nginx

docker pull nginx

2.vite代理与nginx代理

vite.config配置
server: {
    port: 9090,
    cors: true, // 默认启用并允许任何源
    open: true, // 在服务器启动时自动在浏览器中打开应用程序
    //反向代理配置,注意rewrite写法
    proxy: {
      "/api": {
        target: "http://xx.xx.xx.x1:8090", //代理接口
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, "api"),
      },
      "/web": {
        target: "http://xx.xx.xx.x2:8090", //代理接口
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/web/, "web"),
      },
    },
  },
 
 
nginx配置:
location ^~ /api/ {
    proxy_pass http://xx.xx.xx.x1:8090/api/;  # 转发地址
}
        
location ^~ /web/ {
    proxy_pass http://xx.xx.xx.x2:8090/web/;  # 转发地址
}

3.将vite项目打包成dist文件

我们的目标就是将项目构建成一个静态资源目录。然后发布到nginx上访问

执行命令

pnpm build

4.设置nginx配置文件

nginx.conf配置文件如下

worker_processes  1;

events {
    worker_connections  1024;  #每个工作进程的最大连接数量
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;   #指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。
    keepalive_timeout  65;   #超时时间
    
    server {
        listen       80;  #监听端口
        server_name  localhost, 127.0.0.1;  #配置访问域名

        location / {
             root   /usr/share/nginx/html;  #设置需要访问的静态资源
             index  index.html index.htm;
             try_files $uri $uri/ /index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # 设置后端服务器信息
        location ^~ /dev/ {
            proxy_set_header Host $host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;  #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://172.17.0.2:80/; #后端地址应用容器地址
        }
    }
}

5.创建Dockerfile文件

通过Dockerfile下载nginx镜像,然后把我们的vue静态资源添加到nginx镜像的特定目录,用我们设置好的nginx配置文件覆盖默认的配置文件,最后打包成一个新的镜像发布启动。

# 下载nginx镜像
FROM nginx

# 镜像作者(可忽略)
MAINTAINER quanbo

# 将前端项目打包的dist文件全部拷贝到/usr/share/nginx/html/文件下
COPY dist/ /usr/share/nginx/html/

#用nginx.conf覆盖默认的nginx.conf文件
COPY nginx.conf /etc/nginx/nginx.conf

# 添加完成标记(可省略)
RUN echo 'echo init ok!!'

6.webstom配置docker启动设置

目的是根据Dockerfile文件中的内容构建成一个新的镜像发布到服务器中,然后运行创建一个新的容器

截屏2022-03-15_14.44.02.png

三.docker部署ods后端项目

💡 思路:将项目构建成一个jar包,下载一个java8的镜像,然后将jar放进镜像中,将jar启动起来,暴露响应端口。另外再启一个redis容器。配合使用即可

1.将后端项目打包成jar包

在后端项目中执行一下命令

mvn clean package

2.创建Dockerfile文件

# 下载java8镜像
FROM java:8

# 设置作者
MAINTAINER quanbo

# 设置环境语言
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

# 将后端的jar包添加进镜像中
ADD ods-info/target/ods-info-0.0.1-SNAPSHOT.jar app.jar

# 设置jar启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

#暴露端口
EXPOSE 80

# 设置docker内部时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

3.idea中配置docker启动设置

目的是根据Dockerfile文件中的内容构建成一个新的镜像发布到服务器中,然后运行创建一个新的容器

截屏2022-03-15_14.41.50.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容