初始化提交
This commit is contained in:
		
							
								
								
									
										49
									
								
								script/docker/Docker-HOWTO.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								script/docker/Docker-HOWTO.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| # Docker Build & Up | ||||
|  | ||||
| 目标: 快速部署体验系统,帮助了解系统之间的依赖关系。 | ||||
| 依赖:docker compose v2,删除`name: yudao-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。 | ||||
|  | ||||
| ## 功能文件列表 | ||||
|  | ||||
| ```text | ||||
| . | ||||
| ├── Docker-HOWTO.md                  | ||||
| ├── docker-compose.yml               | ||||
| ├── docker.env                      <-- 提供docker-compose环境变量配置 | ||||
| ├── yudao-server | ||||
| │   └── Dockerfile | ||||
| └── yudao-ui-admin | ||||
|     ├── .dockerignore | ||||
|     ├── Dockerfile | ||||
|     └── nginx.conf                  <-- 提供基础配置,gzip压缩、api转发 | ||||
| ``` | ||||
|  | ||||
| ## 构建 jar 包 | ||||
|  | ||||
| ```shell | ||||
| # 创建maven缓存volume | ||||
| docker volume create --name yudao-maven-repo | ||||
|  | ||||
| docker run -it --rm --name yudao-maven \ | ||||
|     -v yudao-maven-repo:/root/.m2 \ | ||||
|     -v $PWD:/usr/src/mymaven \ | ||||
|     -w /usr/src/mymaven \ | ||||
|     maven mvn clean install package '-Dmaven.test.skip=true' | ||||
| ``` | ||||
|  | ||||
| ## 构建启动服务 | ||||
|  | ||||
| ```shell | ||||
| docker compose --env-file docker.env up -d | ||||
| ``` | ||||
|  | ||||
| 首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像 | ||||
|  | ||||
| `--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。 | ||||
|  | ||||
| ## 服务器的宿主机端口映射 | ||||
|  | ||||
| - admin ui: http://localhost:8080 | ||||
| - api server: http://localhost:48080 | ||||
| - mysql: root/123456, port: 3306 | ||||
| - redis: port: 6379 | ||||
							
								
								
									
										84
									
								
								script/docker/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								script/docker/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,84 @@ | ||||
| version: "3.4" | ||||
|  | ||||
| name: yudao-system | ||||
|  | ||||
| services: | ||||
|   mysql: | ||||
|     container_name: yudao-mysql | ||||
|     image: mysql:8 | ||||
|     restart: unless-stopped | ||||
|     tty: true | ||||
|     ports: | ||||
|       - "3306:3306" | ||||
|     environment: | ||||
|       MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro} | ||||
|       MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} | ||||
|     volumes: | ||||
|       - mysql:/var/lib/mysql/ | ||||
|       - ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro | ||||
|  | ||||
|   redis: | ||||
|     container_name: yudao-redis | ||||
|     image: redis:6-alpine | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|       - "6379:6379" | ||||
|     volumes: | ||||
|       - redis:/data | ||||
|  | ||||
|   server: | ||||
|     container_name: yudao-server | ||||
|     build: | ||||
|       context: ./yudao-server/ | ||||
|     image: yudao-server | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|       - "48080:48080" | ||||
|     environment: | ||||
|       # https://github.com/polovyivan/docker-pass-configs-to-container | ||||
|       SPRING_PROFILES_ACTIVE: local | ||||
|       JAVA_OPTS: | ||||
|         ${JAVA_OPTS:- | ||||
|           -Xms512m | ||||
|           -Xmx512m | ||||
|           -Djava.security.egd=file:/dev/./urandom | ||||
|         } | ||||
|       ARGS: | ||||
|         --spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} | ||||
|         --spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root} | ||||
|         --spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456} | ||||
|         --spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} | ||||
|         --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root} | ||||
|         --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456} | ||||
|         --spring.redis.host=${REDIS_HOST:-yudao-redis} | ||||
|     depends_on: | ||||
|       - mysql | ||||
|       - redis | ||||
|  | ||||
|   admin: | ||||
|     container_name: yudao-admin | ||||
|     build: | ||||
|       context: ./yudao-ui-admin | ||||
|       args: | ||||
|         NODE_ENV: | ||||
|           ENV=${NODE_ENV:-production} | ||||
|           PUBLIC_PATH=${PUBLIC_PATH:-/} | ||||
|           VUE_APP_TITLE=${VUE_APP_TITLE:-芋道管理系统} | ||||
|           VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api} | ||||
|           VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/} | ||||
|           VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true} | ||||
|           VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true} | ||||
|           VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true} | ||||
|           VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab} | ||||
|     image: yudao-admin | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|       - "8080:80" | ||||
|     depends_on: | ||||
|       - server | ||||
|  | ||||
| volumes: | ||||
|   mysql: | ||||
|     driver: local | ||||
|   redis: | ||||
|     driver: local | ||||
							
								
								
									
										25
									
								
								script/docker/docker.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								script/docker/docker.env
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| ## mysql | ||||
| MYSQL_DATABASE=ruoyi-vue-pro | ||||
| MYSQL_ROOT_PASSWORD=123456 | ||||
|  | ||||
| ## server | ||||
| JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom | ||||
|  | ||||
| MASTER_DATASOURCE_URL=jdbc:mysql://yudao-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true | ||||
| MASTER_DATASOURCE_USERNAME=root | ||||
| MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} | ||||
| SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL} | ||||
| SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME} | ||||
| SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD} | ||||
| REDIS_HOST=yudao-redis | ||||
|  | ||||
| ## admin | ||||
| NODE_ENV=production | ||||
| PUBLIC_PATH=/ | ||||
| VUE_APP_TITLE=芋道管理系统 | ||||
| VUE_APP_BASE_API=/prod-api | ||||
| VUE_APP_APP_NAME=/ | ||||
| VUE_APP_TENANT_ENABLE=true | ||||
| VUE_APP_CAPTCHA_ENABLE=true | ||||
| VUE_APP_DOC_ENABLE=true | ||||
| VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab | ||||
		Reference in New Issue
	
	Block a user
	 YangJ
					YangJ