一、安装docker+华为加速器
bash
复制代码
1.关闭防火墙以及增强功能
systemctl stop firewalld
setenforce 0
2.安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.下载docker20.10.18版本
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18 container.io
5.华为加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [ "https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com" ]
}
EOF
systemctl daemon-reload
systemctl resatrt docker
二、git clone RuoYi代码
bash
复制代码
mkdir /opt/ruoyi
cd /opt/ruoyi
git clone https://gitee.com/y_project/RuoYi-Vue.git
三、修改ruoyi配置文件
bash
复制代码
vim /opt/ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application-druid.yml
vim /opt/ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application.yml
四、拉取node镜像,准备前端容器环境
bash
复制代码
docker pull node:12
cd /opt/ruoyi/RuoYi-Vue
docker run -it --rm -v /opt/ruoyi/RuoYi-Vue/ruoyi-ui:/opt/ node:12 /bin/bash
容器中:
cd /opt
#打包前端代码
npm install
#构建生产环境
npm run build:prod
此时,会再在/opt/ruoyi/RuoYi-Vue/ruoyi-ui目录下会生成一个dist目录(前端使用的文件,之后可以用于nginx)
五、拉取maven镜像
bash
复制代码
docker pull maven:3.6.3-openjdk-11
docker run -it --rm -v /opt/ruoyi//RuoYi-Vue:/vue maven:3.6.3-openjdk-11 /bin/bash
#进入容器
cd /vue
mvn -DskipTests -B clean package
exit
cd /opt/ruoti/RuoYi-Vue
mv ruoyi-admin/target/ruoyi-admin.jar /opt/ruoyi
六、使用dockerfile定义后端java项目的运行环境
bash
复制代码
mkdir /opt/java
cd /opt/java (把CentOS-Base放在此目录)
vim Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.d/*
COPY epel-aliyun.repo /etc/yum.repos.d
COPY CentOS-aliyun-lhr.repo /etc/yum.repos.d
RUN yum clean all && yum makecache
run yum -y install java-1.8.0
WORKDIR /opt
COPY ./ruoyi-admin.jar /opt
CMD [ "java","-jar","ruoyi-admin.jar" ]
curl -o /opt/java/epel-aliyun.repo https://mirrors.aliyun.com/repo/epel-7.repo
curl -o /opt/java/CentOS-aliyun-lhr.repo https://mirrors.aliyun.com/repo/Centos-7.repo
七、编写docker-compos.yml文件构建ruoyi项目
bash
复制代码
vim /opt/java/nginx.conf
1 user nginx;
2 worker_processes auto;
3 error_log /var/log/nginx/error.log;
4 pid /run/nginx.pid;
5 # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
6 include /usr/share/nginx/modules/*.conf;
7 events {
8 worker_connections 1024;
9 }
10 http {
11 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
12 '$status $body_bytes_sent "$http_referer" '
13 '"$http_user_agent" "$http_x_forwarded_for"';
14 access_log /var/log/nginx/access.log main;
15 sendfile on;
16 tcp_nopush on;
17 tcp_nodelay on;
18 keepalive_timeout 65;
19 types_hash_max_size 4096;
20 include /etc/nginx/mime.types;
21 default_type application/octet-stream;
22 # Load modular configuration files from the /etc/nginx/conf.d directory.
23 # See http://nginx.org/en/docs/ngx_core_module.html#include
24 # for more information.
25 #include /etc/nginx/conf.d/*.conf;
26 server {
27 listen 80;
28 server_name localhost;
29 location / {
30 root /usr/share/nginx/html;
31 index index.html;
32 }
33 location /prod-api/ {
34 proxy_pass http://java.com:8080/;
35 }
36 }
37 # Settings for a TLS enabled server.
38 #
39 # server {
40 # listen 443 ssl http2;
41 # listen [::]:443 ssl http2;
42 # server_name _;
43 # root /usr/share/nginx/html;
44 #
45 # ssl_certificate "/etc/pki/nginx/server.crt";
46 # ssl_certificate_key "/etc/pki/nginx/private/server.key";
47 # ssl_session_cache shared:SSL:1m;
48 # ssl_session_timeout 10m;
49 # ssl_ciphers HIGH:!aNULL:!MD5;
50 # ssl_prefer_server_ciphers on;
51 #
52 # # Load configuration files for the default server block.
53 # include /etc/nginx/default.d/*.conf;
54 #
55 # error_page 404 /404.html;
56 # location = /40x.html {
57 # }
58 #
59 # error_page 500 502 503 504 /50x.html;
60 # location = /50x.html {
61 # }
62 # }
63 }
在**/opt/ruoyi目录下写docker-compose.yml****文件**
bash
复制代码
vim docker-compose.yml
version: '3'
services:
ruoyi-web:
image: nginx:1.25.3
container_name: ruoyi-web
hostname: ruoyi-web
environment:
- LANG=C.UTF-8
- LC_ALL=C.UTF-8
ports:
- 8888:80
volumes:
- /opt/ruoyi/RuoYi-Vue/ruoyi-ui/dist/:/usr/share/nginx/html/
- /opt/ruoyi/java/nginx.conf:/etc/nginx/nginx.conf:ro
links:
- java:java.com
depends_on:
- java
java:
build: ./java
container_name: java.server
hostname: java
environment:
- LANG=C.UTF-8
- LC_ALL=C.UTF-8
links:
- db:mysql.server
- redis:redis.server
depends_on:
- db
- redis
db:
image: mysql:5.7
container_name: mysql.server
hostname: db
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=ry-vue
- LANG=C.UTF-8
- LC_ALL=C.UTF-8
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
volumes:
- /opt/mysql-data4:/var/lib/mysql
- /opt/ruoyi/RuoYi-Vue/sql:/docker-entrypoint-initdb.d
redis:
image: redis
container_name: redis.server
hostname: redis:redis.server
environment:
- LANG=C.UTF-8
- LC_ALL=C.UTF-8
先拖docker-compose-v2.24.3包到ruoyi目录下
mv docker-compose-v2.24.3 docker-compose
mv docker-compose /usr/local/bin
chmod +x /usr/local/bin/docker-compose
使用docker-compose启动ruoyi项目
bash
复制代码
docker-compose up
如果有错(比如ruoyi-java有错):
docker images
docker rmi -f ruoyi-java:latest
在java目录下
cp /etc/yum.repos.d/CentOS-Base.repo ./
vim Dockerfile
把里边源改成CentOS-Base.repo
docker-compose down
docker-compose up
docker ps
登录:
192.168.10.162:8888
查看页面