此文档只针对Windows Docker
# 后端
以若依为例 后台端口为8823,打包后的名称为ruoyi-admin.jar
# 打包
mvn clean package -Dmaven.test.skip=true
如果后端需要的服务(如Mysql,Redis)也部署在docker中,打包之前需要将对应的IP替换为host.docker.internal
# 创建Dockerfile
FROM adoptopenjdk/openjdk8-openj9:latest
#作者
MAINTAINER zhanglonglong
#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/ruoyi-admin.jar ruoyiAdmin.jar
#启动容器时的进程
ENTRYPOINT ["java","-jar","/ruoyiAdmin.jar"]
#暴露端口
EXPOSE 8823
# 创建镜像
进入Dockerfile所在的目录,执行命令
docker build -t ruoyi-admin .
# 运行容器
docker run --name RuoyiAdmin -d -p 8823:8823 --restart always ruoyi-admin
# 前端(暂)
# 打包
npm run build:prod
将打包后的dist文件中内容复制到F:/docker/conf/bill-ui/html
# 创建Nginx配置文件
在F:/docker/conf/bill-ui/conf/下创建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 8801;
server_name localhost;
charset utf-8;
location / {
root /usr/share/nginx/html;
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://host.docker.internal:8823;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# 运行Nginx
docker run -d -p 8801:8801 --name Bill-UI -v F:/docker/conf/bill-ui/conf/nginx.conf:/etc/nginx/nginx.conf -v F:/docker/conf/bill-ui/html:/usr/share/nginx/html nginx
访问http://localhost:8801