此文档只针对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

上次更新: 2023/02/26 22:39:36