mirror of
https://gitee.com/lakernote/easy-admin.git
synced 2026-09-03 05:33:47 +08:00
https://gitee.com/lakernote/easy-admin/issues/I4FPMC https://gitee.com/lakernote/easy-admin/issues/I4FPLP
97 lines
3.4 KiB
YAML
97 lines
3.4 KiB
YAML
# 启动命令 docker-compose up 在后台执行该服务可以加上 -d,docker-compose up -d
|
||
# 停止命令 docker-compose down
|
||
version: "3.4"
|
||
# 项目名称
|
||
name: easy-admin
|
||
|
||
services:
|
||
# 定义了mysql数据库
|
||
mysql:
|
||
# 容器名
|
||
container_name: mysql8
|
||
# 镜像
|
||
image: mysql:8.3
|
||
# 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
|
||
restart: unless-stopped
|
||
command: [ "--max_connections=300","--default-authentication-plugin=mysql_native_password" ]
|
||
networks:
|
||
- app_net
|
||
# 映射端口
|
||
ports:
|
||
- "3306:3306"
|
||
# 设置环境变量,相当于docker run命令中的-e
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
# 初始化的数据库名称
|
||
MYSQL_DATABASE: laker
|
||
# 设置root用户密码
|
||
MYSQL_ROOT_PASSWORD: 123456
|
||
# 数据卷挂载路径设置,将本机目录映射到容器目录
|
||
volumes:
|
||
- mysqlData:/var/lib/mysql
|
||
# 将宿主机的 /var/lib/mysql/ 目录挂载到容器内的 /var/lib/mysql/ 目录
|
||
# 这样做的目的通常是为了将 MySQL 数据库的持久化存储在宿主机的数据卷中,以防止容器删除后数据丢失。
|
||
# - /var/lib/mysql/:/var/lib/mysql/
|
||
# 表示将宿主机中的 ./sql/mysql/ruoyi-vue-pro.sql 文件挂载到容器内的 /docker-entrypoint-initdb.d/ruoyi-vue-pro.sql 文件,
|
||
# 同时设置挂载为只读模式 (ro,即 read-only)。这个配置通常用于向 MySQL 数据库容器中初始化数据,比如在容器启动时执行 SQL 脚本以创建数据库表和插入初始数据。
|
||
- ./sql/easy-admin.sql:/docker-entrypoint-initdb.d/easy-admin.sql:ro
|
||
healthcheck:
|
||
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
|
||
interval: 10s
|
||
timeout: 10s
|
||
retries: 3
|
||
|
||
# 定义了redis
|
||
redis:
|
||
container_name: redis6
|
||
image: redis:6-alpine
|
||
restart: unless-stopped
|
||
networks:
|
||
- app_net
|
||
ports:
|
||
- "6379:6379"
|
||
volumes:
|
||
- redisData:/data
|
||
- redisData:/etc/redis/redis.conf
|
||
# 定义了服务
|
||
easyadmin-server:
|
||
container_name: easyadmin-server
|
||
# 构建镜像
|
||
build:
|
||
# Dockerfile上下文路径
|
||
context: ./
|
||
# 指定 Dockerfile 文件的路径 Dockerfile中的路径 基于上面配置的`context`路径
|
||
dockerfile: Dockerfile
|
||
image: easyadmin-server
|
||
restart: unless-stopped
|
||
ports:
|
||
- "8080:8080"
|
||
networks:
|
||
- app_net
|
||
environment:
|
||
SPRING_PROFILES_ACTIVE: local
|
||
# 使用服务名称 mysql 替代 localhost 来访问 MySQL 服务
|
||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/laker?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
|
||
# 一个服务依赖于其他服务启动完成后才能启动
|
||
# 即当mysql和redis服务启动后,才启动easyadmin-server服务
|
||
# 注意:easyadmin-server 服务不会等待 mysql redis 完全启动之后才启动。
|
||
depends_on:
|
||
mysql:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_started
|
||
|
||
volumes:
|
||
# 自定义的卷名,存储的路径不好找
|
||
redisData:
|
||
mysqlData:
|
||
|
||
networks:
|
||
# 配置docker network
|
||
app_net:
|
||
# 桥接模式是 Docker 默认的网络驱动程序,用于在容器间创建桥接网络,使它们能够相互通信
|
||
driver: bridge
|
||
ipam:
|
||
config:
|
||
# 子网络
|
||
- subnet: 178.18.0.0/16 |