Commit 0fb3c4bfcc61baf85292defda3ac6fb916f3d3e8
1 parent
7f657ee9
docker compose首次启动加载sql脚本
Showing
2 changed files
with
21 additions
and
41 deletions
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 |