
第三个
当然,以下是第三个 Halo 实例的 docker-compose.yml
配置文件,请确保以独立的目录和配置运行这个 Halo 实例:
第三个 Halo 实例的 docker-compose.yml
version: "3.8"
services:
halo3:
image: registry.fit2cloud.com/halo/halo:2.20
restart: on-failure:3
depends_on:
- halodb3
networks:
- halo_network
volumes:
- ./halo_data:/root/.halo # 使用第三个实例的数据目录
ports:
- "8094:8090" # 修改: 为第三个实例映射一个新的主机端口
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
- JVM_OPTS=-Xmx256m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb3:3306/halo3 # 修改: 调整数据库连接和名称
- --spring.r2dbc.username=halo3 # 修改: 设置特定实例的数据库用户名
- --spring.r2dbc.password=H@lo3Uniqu3 # 修改: 为第三个实例提供数据库密码
- --spring.sql.init.platform=mysql
- --halo.external-url=http://localhost:8094/ # 修改: 设置不同的外部访问URL
halodb3:
image: mysql:8.1.0
restart: on-failure:3
networks:
- halo_network
volumes:
- ./mysql_data3:/var/lib/mysql # 使用第三个实例的数据库持久化路径
environment:
- MYSQL_ROOT_PASSWORD=H@lo3Uniqu3 # 修改: 设置MySQL根密码和应用密码
- MYSQL_DATABASE=halo3 # 修改: 为第三个实例指定数据库名称
- MYSQL_USER=halo3 # 修改: 为第三个实例设置数据库用户名
- MYSQL_PASSWORD=H@lo3Uniqu3 # 修改: 为第三个实例设置用户密码
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-pH@lo3Uniqu3"]
interval: 30s
timeout: 5s
retries: 5
networks:
halo_network:
关键修改点
-
端口映射:
ports: "8094:8090"
:主机的8094端口映射到容器的8090端口。这个端口是每个实例要独立配置的,以此来区分服务。
-
服务及数据库命名:
halo3
和halodb3
:为新的服务和数据库选择了新的名称,确保与之前的实例区分开来。
-
数据库设置:
- 数据库名称、用户名、和密码均为新的独立值,以避免与其他实例冲突。
-
数据卷路径:
./halo_data
和./mysql_data3
:为新的实例设置独立的持久化存储路径。
-
外部访问URL:
--halo.external-url=http://localhost:8094/
:这是主机上的访问地址,你可能根据实际需要进一步配置。
启动步骤
-
确认将此
docker-compose.yml
放在用于第三个实例的独立目录中。 -
在该目录中运行:
docker-compose up -d
确保这些设置按需修改以适应你的实际部署环境,每个实例运行在独立的配置和容器环境中,避免相互干扰。希望这个配置可以完美适应你的需求!
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 兰雀AI