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_web、Dockerfile、nginx.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

浙公网安备 33010602011771号