Commit 09a2cfaaa7a38123b14cb18cfee4756196e579a6

Authored by 芋道源码
Committed by Gitee
2 parents 7f657ee9 0fb3c4bf

!546 优化docker-compose功能,首次运行加载sql/mysql/ruoyi-vue-pro.sql

Merge pull request !546 from dhb52/master
Docker-HOWTO.md
1 # Docker Build & Up 1 # Docker Build & Up
2 2
3 目标: 快速部署体验系统,帮助了解系统之间的依赖关系。 3 目标: 快速部署体验系统,帮助了解系统之间的依赖关系。
  4 +依赖:docker compose v2,删除`name: yudao-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。
4 5
5 ## 功能文件列表 6 ## 功能文件列表
6 7
7 ```text 8 ```text
8 . 9 .
9 -├── Docker-HOWTO.md  
10 -├── docker-compose.yml  
11 -├── docker.env 10 +├── Docker-HOWTO.md
  11 +├── docker-compose.yml
  12 +├── docker.env <-- 提供docker-compose环境变量配置
12 ├── yudao-server 13 ├── yudao-server
13 -│ ├── Dockerfile  
14 -│ └── nginx.conf 14 +│ └── Dockerfile
15 └── yudao-ui-admin 15 └── yudao-ui-admin
16 ├── .dockerignore 16 ├── .dockerignore
17 - └── Dockerfile 17 + ├── Dockerfile
  18 + └── nginx.conf <-- 提供基础配置,gzip压缩、api转发
18 ``` 19 ```
19 20
20 -## Maven build (Optional) 21 +## 构建 jar 包
21 22
22 ```shell 23 ```shell
23 # 创建maven缓存volume 24 # 创建maven缓存volume
@@ -30,29 +31,19 @@ docker run -it --rm --name yudao-maven \ @@ -30,29 +31,19 @@ docker run -it --rm --name yudao-maven \
30 maven mvn clean install package '-Dmaven.test.skip=true' 31 maven mvn clean install package '-Dmaven.test.skip=true'
31 ``` 32 ```
32 33
33 -## Docker Compose Build  
34 -  
35 -```shell  
36 -docker compose --env-file docker.env build  
37 -```  
38 -  
39 -## Docker Compose Up 34 +## 构建启动服务
40 35
41 ```shell 36 ```shell
42 docker compose --env-file docker.env up -d 37 docker compose --env-file docker.env up -d
43 ``` 38 ```
44 39
45 -第一次执行,由于数据库未初始化,因此yudao-server容器会运行失败。执行如下命令初始化数据库: 40 +首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像
46 41
47 -```shell  
48 -docker compose exec -T mysql \  
49 - sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" --default-character-set=utf8mb4 ruoyi-vue-pro' \  
50 - < ./sql/mysql/ruoyi-vue-pro.sql  
51 -``` 42 +`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。
52 43
53 -## Server:Port 44 +## 服务器的宿主机端口映射
54 45
55 -- admin: http://localhost:8080  
56 -- API: http://localhost:48080  
57 -- mysql: root/123456, port: 3308 46 +- admin ui: http://localhost:8080
  47 +- api server: http://localhost:48080
  48 +- mysql: root/123456, port: 3306
58 - redis: port: 6379 49 - redis: port: 6379
docker-compose.yml
1 -version: "3.8" 1 +version: "3.4"
2 2
3 name: yudao-system 3 name: yudao-system
4 4
@@ -9,25 +9,22 @@ services: @@ -9,25 +9,22 @@ services:
9 restart: unless-stopped 9 restart: unless-stopped
10 tty: true 10 tty: true
11 ports: 11 ports:
12 - - 13306:3306 12 + - "3306:3306"
13 environment: 13 environment:
14 MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro} 14 MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro}
15 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} 15 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456}
16 volumes: 16 volumes:
17 - mysql:/var/lib/mysql/ 17 - mysql:/var/lib/mysql/
18 - networks:  
19 - - yudao-network 18 + - ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro
20 19
21 redis: 20 redis:
22 container_name: yudao-redis 21 container_name: yudao-redis
23 image: redis:6-alpine 22 image: redis:6-alpine
24 restart: unless-stopped 23 restart: unless-stopped
25 ports: 24 ports:
26 - - 16379:6379 25 + - "6379:6379"
27 volumes: 26 volumes:
28 - redis:/data 27 - redis:/data
29 - networks:  
30 - - yudao-network  
31 28
32 server: 29 server:
33 container_name: yudao-server 30 container_name: yudao-server
@@ -36,7 +33,7 @@ services: @@ -36,7 +33,7 @@ services:
36 image: yudao-server 33 image: yudao-server
37 restart: unless-stopped 34 restart: unless-stopped
38 ports: 35 ports:
39 - - 48080:48080 36 + - "48080:48080"
40 environment: 37 environment:
41 # https://github.com/polovyivan/docker-pass-configs-to-container 38 # https://github.com/polovyivan/docker-pass-configs-to-container
42 SPRING_PROFILES_ACTIVE: local 39 SPRING_PROFILES_ACTIVE: local
@@ -54,8 +51,6 @@ services: @@ -54,8 +51,6 @@ services:
54 --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root} 51 --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root}
55 --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456} 52 --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456}
56 --spring.redis.host=${REDIS_HOST:-yudao-redis} 53 --spring.redis.host=${REDIS_HOST:-yudao-redis}
57 - networks:  
58 - - yudao-network  
59 depends_on: 54 depends_on:
60 - mysql 55 - mysql
61 - redis 56 - redis
@@ -78,16 +73,10 @@ services: @@ -78,16 +73,10 @@ services:
78 image: yudao-admin 73 image: yudao-admin
79 restart: unless-stopped 74 restart: unless-stopped
80 ports: 75 ports:
81 - - 8080:80  
82 - networks:  
83 - - yudao-network 76 + - "8080:80"
84 depends_on: 77 depends_on:
85 - server 78 - server
86 79
87 -networks:  
88 - yudao-network:  
89 - driver: bridge  
90 -  
91 volumes: 80 volumes:
92 mysql: 81 mysql:
93 driver: local 82 driver: local