Linux 部署前后端分离项目

docker后端部署

打包jar文件

首先在idea中将 java 程序打包为.jar文件

编写Dockerfile文件

# 使用`jdk8`
FROM openjdk:8
# 作者
MAINTAINER lrc
# 临时文件
VOLUME /tmp
# 将前者重命名为后者
ADD smart-recruit.jar recruit.jar 
# 导出端口
EXPOSE 8080
# 运行命令
ENTRYPOINT ["java","-jar","/recruit.jar"]

构建镜像

Dockerfile同级目录中,运行docker打包镜像命令(注意最后有个点)

docker build -t recruit .

# 查看镜像
docker images

# 运行镜像
docker run -itd  --restart=always --name moyu_recruit -p 5000:5000 recruit:latest

前端部署

打包前端项目

方法一:Nginx 部署

下载nginx镜像

docker pull nginx

配置 nginx.conf

user root;
worker_processes 1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    client_max_body_size     50m;
    client_body_buffer_size  10m; 
    client_header_timeout    1m;
    client_body_timeout      1m;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_comp_level  4;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;

server {
        listen       80;
        server_name  47.113.144.233;

        location / {
        	  root   /usr/local/vue/dist;
        	  index  index.html index.htm;
        	  try_files $uri $uri/ /index.html =404;


        }

        location /api/ {
#     	  rewrite  ^/api(/.*)$ $1 break;
            proxy_pass http://47.113.144.233:5000/;
        	  proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;						
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	       
        }
        

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
    
}

运行nginx

docker stop nginx

docker rm nginx

docker run --name nginx --restart=always -p 80:80 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/vue:/usr/local/vue nginx

方法二 Docker 部署

下载nginx镜像

docker pull nginx

编写 Dockerfile

moyu_recruit_webDockerfilenginx.conf三者在同一个目录

# 基础镜像使用Nginx
FROM nginx
# 作者
MAINTAINER lrc
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
# 将前端dist文件中的内容复制到nginx目录
COPY moyu_recruit_web /etc/nginx/html/
# 覆盖镜像的Nginx配置
COPY nginx.conf /etc/nginx/nginx.conf

配置nginx.conf

user root;
worker_processes 1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    client_max_body_size     50m;
    client_body_buffer_size  10m; 
    client_header_timeout    1m;
    client_body_timeout      1m;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_comp_level  4;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;

server {
        listen       80;
        server_name  localhost;
     
        location / {		
            root   /home/moyu_recruit/moyu_recruit_web;
            index  index.html index.htm; 
            try_files $uri $uri/ /index.html;	
        }
			
	location ^~ /api/ {		
            proxy_pass http://47.113.144.233:5000;
	        proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;						
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
		
    }
    
}

运行nginx

docker stop recruit_web

docker rm recruit_web

docker rmi recruit_nginx

docker build -t recruit_nginx .

docker run --name recruit_web -d -p 80:80 recruit_nginx

docker ps
posted @ 2024-03-13 18:10  Liu-RC  阅读(18)  评论(0)    收藏  举报