1、创建Dockerfile文件
#使用openJDK 8 作为基础镜像
FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/openjdk:8-8.6
# 设置镜像的维护者信息
LABEL maintainer="陈晨"
# 设置环境变量UTF-8编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 设置环境变量上海时区
ENV TZ=Asia/Shanghai
# 设置工作目录为 /usr/app
WORKDIR /usr/app
# 设置日志目录的挂载点
VOLUME ["/home/project/ruoyi-vue/ruoyi-admin/logs"]
# 复制并重命名上传的 jar 包
COPY ruoyi-admin.jar ruoyi-admin.jar
# 暴露容器的端口 8080
EXPOSE 8080
# 启动命令
ENTRYPOINT ["java", "-jar", "ruoyi-admin.jar"]
2、构建镜像
#使用命令构建镜像名称为ruoyi-admin的镜像
docker build -t ruoyi-admin .
3、查看镜像
docker images
4、启动镜像命令
docker run -d --name ruoyi-admin -p 8080:8080 ruoyi-admin
5、查看启动容器是否启动。
docker ps -a
6、查看容器日志,容器已成功启动了。
docker logs -f ruoyi-admin
7、创建sh脚本
#!/bin/bash
# 容器名称和镜像名称
CONTAINER_NAME="ruoyi-admin"
IMAGE_NAME="ruoyi-admin"
echo "开始暂停容器"
# 暂停容器
docker stop $CONTAINER_NAME
echo "容器已暂停"
echo "开始删除容器"
# 删除容器
docker rm $CONTAINER_NAME
echo "容器已删除"
echo "开始删除镜像"
# 删除镜像
docker rmi $IMAGE_NAME
echo "镜像已删除"
echo "开始构建镜像"
# 构建镜像
docker build -t $IMAGE_NAME .
echo "镜像构建成功"
echo "开始启动容器"
# 启动容器
docker run -d --name $CONTAINER_NAME -p 8080:8080 $IMAGE_NAME
echo "容器启动成功"
8、创建sh脚本(挂载上传文件)
#!/bin/bash
# 容器名称和镜像名称
CONTAINER_NAME="ruoyi-file"
IMAGE_NAME="ruoyi-file"
echo "开始暂停容器"
# 暂停容器
docker stop $CONTAINER_NAME
echo "容器已暂停"
echo "开始删除容器"
# 删除容器
docker rm $CONTAINER_NAME
echo "容器已删除"
echo "开始删除镜像"
# 删除镜像
docker rmi $IMAGE_NAME
echo "镜像已删除"
echo "开始构建镜像"
# 构建镜像
docker build -t $IMAGE_NAME .
echo "镜像构建成功"
echo "开始启动容器"
# 启动容器
# 宿主机路径:/home/project/ruoyi-vue/ruoyi-file/uploadPath
# 容器内路径:/usr/app/ruoyi-file/uploadPath
# 项目中配置的文件上传地址需配置容器内路径
docker run -d --name $CONTAINER_NAME -p 9002:9002 -v /home/project/ruoyi-vue/ruoyi-file/uploadPath:/usr/app/ruoyi-file/uploadPath $IMAGE_NAME
echo "容器启动成功"
9、前端nginx配置
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
#root /home/nginx/html;
#这里的前端地址是nginx容器内
root /usr/share/nginx/html/ruoyi-web;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /ruoyi-admin/ {
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://47.113.144.16:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 81;
server_name localhost;
charset utf-8;
location / {
#root /home/nginx/html;
#这里的前端地址是nginx容器内
root /usr/share/nginx/html/ruoyi-web1;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /ruoyi-admin/ {
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://47.113.144.16:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers PROFILE=SYSTEM;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}