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 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 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 13 ├── yudao-server
13   -│ ├── Dockerfile
14   -│ └── nginx.conf
  14 +│ └── Dockerfile
15 15 └── yudao-ui-admin
16 16 ├── .dockerignore
17   - └── Dockerfile
  17 + ├── Dockerfile
  18 + └── nginx.conf <-- 提供基础配置,gzip压缩、api转发
18 19 ```
19 20  
20   -## Maven build (Optional)
  21 +## 构建 jar 包
21 22  
22 23 ```shell
23 24 # 创建maven缓存volume
... ... @@ -30,29 +31,19 @@ docker run -it --rm --name yudao-maven \
30 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 36 ```shell
42 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 49 - redis: port: 6379
... ...
docker-compose.yml
1   -version: "3.8"
  1 +version: "3.4"
2 2  
3 3 name: yudao-system
4 4  
... ... @@ -9,25 +9,22 @@ services:
9 9 restart: unless-stopped
10 10 tty: true
11 11 ports:
12   - - 13306:3306
  12 + - "3306:3306"
13 13 environment:
14 14 MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro}
15 15 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456}
16 16 volumes:
17 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 20 redis:
22 21 container_name: yudao-redis
23 22 image: redis:6-alpine
24 23 restart: unless-stopped
25 24 ports:
26   - - 16379:6379
  25 + - "6379:6379"
27 26 volumes:
28 27 - redis:/data
29   - networks:
30   - - yudao-network
31 28  
32 29 server:
33 30 container_name: yudao-server
... ... @@ -36,7 +33,7 @@ services:
36 33 image: yudao-server
37 34 restart: unless-stopped
38 35 ports:
39   - - 48080:48080
  36 + - "48080:48080"
40 37 environment:
41 38 # https://github.com/polovyivan/docker-pass-configs-to-container
42 39 SPRING_PROFILES_ACTIVE: local
... ... @@ -54,8 +51,6 @@ services:
54 51 --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root}
55 52 --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456}
56 53 --spring.redis.host=${REDIS_HOST:-yudao-redis}
57   - networks:
58   - - yudao-network
59 54 depends_on:
60 55 - mysql
61 56 - redis
... ... @@ -78,16 +73,10 @@ services:
78 73 image: yudao-admin
79 74 restart: unless-stopped
80 75 ports:
81   - - 8080:80
82   - networks:
83   - - yudao-network
  76 + - "8080:80"
84 77 depends_on:
85 78 - server
86 79  
87   -networks:
88   - yudao-network:
89   - driver: bridge
90   -
91 80 volumes:
92 81 mysql:
93 82 driver: local
... ...