更新脚本
This commit is contained in:
parent
d09decd7f8
commit
a4dbd7f811
@ -28,6 +28,19 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
start_period: 60s
|
start_period: 60s
|
||||||
|
|
||||||
|
pulsar-cluster-init:
|
||||||
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
||||||
|
container_name: pulsar-cluster-init
|
||||||
|
hostname: pulsar-cluster-init
|
||||||
|
command: >
|
||||||
|
/bin/bash -c
|
||||||
|
"bin/pulsar initialize-cluster-metadata --cluster pulsar-cluster-1 --zookeeper zookeeper:${PULSAR_ZOOKEEPER_PORT} --configuration-store zookeeper:${PULSAR_ZOOKEEPER_PORT} --web-service-url http://${SERVER_IP}:${PULSAR_ADMIN_PORT} --broker-service-url pulsar://${SERVER_IP}:${PULSAR_BROKER_PORT} || echo 'Cluster metadata already exists'"
|
||||||
|
depends_on:
|
||||||
|
zookeeper:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- pulsar-net
|
||||||
|
|
||||||
bookie:
|
bookie:
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
||||||
container_name: pulsar-bookie
|
container_name: pulsar-bookie
|
||||||
@ -41,6 +54,7 @@ services:
|
|||||||
command: >
|
command: >
|
||||||
/bin/bash -c
|
/bin/bash -c
|
||||||
"bin/apply-config-from-env.py conf/bookkeeper.conf &&
|
"bin/apply-config-from-env.py conf/bookkeeper.conf &&
|
||||||
|
(bin/bookkeeper shell metaformat -n --force || echo 'Bookie already formatted') &&
|
||||||
bin/pulsar bookie"
|
bin/pulsar bookie"
|
||||||
environment:
|
environment:
|
||||||
- PULSAR_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
|
- PULSAR_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
|
||||||
@ -49,16 +63,12 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
zookeeper:
|
zookeeper:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
pulsar-cluster-init:
|
||||||
|
condition: service_completed_successfully
|
||||||
networks:
|
networks:
|
||||||
- pulsar-net
|
- pulsar-net
|
||||||
volumes:
|
volumes:
|
||||||
- pulsar-bookkeeper-data:/pulsar/data/bookkeeper
|
- pulsar-bookkeeper-data:/pulsar/data/bookkeeper
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "bin/bookkeeper", "shell", "bookiesanity"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 5
|
|
||||||
start_period: 60s
|
|
||||||
|
|
||||||
broker:
|
broker:
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
||||||
@ -109,7 +119,9 @@ services:
|
|||||||
zookeeper:
|
zookeeper:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
bookie:
|
bookie:
|
||||||
condition: service_healthy
|
condition: service_started
|
||||||
|
pulsar-cluster-init:
|
||||||
|
condition: service_completed_successfully
|
||||||
networks:
|
networks:
|
||||||
- pulsar-net
|
- pulsar-net
|
||||||
volumes:
|
volumes:
|
||||||
@ -122,6 +134,40 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
start_period: 60s
|
start_period: 60s
|
||||||
|
|
||||||
|
pulsar-init:
|
||||||
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
||||||
|
container_name: pulsar-init
|
||||||
|
hostname: pulsar-init
|
||||||
|
command: >
|
||||||
|
/bin/bash -c
|
||||||
|
"
|
||||||
|
# 等待broker就绪
|
||||||
|
until bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' clusters list; do
|
||||||
|
echo 'Waiting for Pulsar broker to be ready...'
|
||||||
|
sleep 5
|
||||||
|
done;
|
||||||
|
|
||||||
|
# 创建租户和命名空间
|
||||||
|
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' tenants create public --allowed-clusters pulsar-cluster-1 -r admin || echo 'Tenant public already exists';
|
||||||
|
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces create public/default || echo 'Namespace public/default already exists';
|
||||||
|
|
||||||
|
# 创建非持久化主题
|
||||||
|
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' topics create non-persistent://public/default/default-topic || echo 'Topic non-persistent://public/default/default-topic already exists';
|
||||||
|
|
||||||
|
# 设置命名空间策略
|
||||||
|
echo 'Setting namespace policies...';
|
||||||
|
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces set-subscription-types-enabled public/default --types NonDurable;
|
||||||
|
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces set-message-ttl public/default --messageTTL 0;
|
||||||
|
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces set-retention public/default --sizeLimit -1 --timeLimit -1;
|
||||||
|
|
||||||
|
echo 'Pulsar initialization completed with Basic Authentication!';
|
||||||
|
"
|
||||||
|
depends_on:
|
||||||
|
broker:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- pulsar-net
|
||||||
|
|
||||||
iotdb-standalone-service:
|
iotdb-standalone-service:
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
|
||||||
hostname: iotdb-standalone
|
hostname: iotdb-standalone
|
||||||
@ -28,19 +28,6 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
start_period: 60s
|
start_period: 60s
|
||||||
|
|
||||||
pulsar-cluster-init:
|
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
|
||||||
container_name: pulsar-cluster-init
|
|
||||||
hostname: pulsar-cluster-init
|
|
||||||
command: >
|
|
||||||
/bin/bash -c
|
|
||||||
"bin/pulsar initialize-cluster-metadata --cluster pulsar-cluster-1 --zookeeper zookeeper:${PULSAR_ZOOKEEPER_PORT} --configuration-store zookeeper:${PULSAR_ZOOKEEPER_PORT} --web-service-url http://${SERVER_IP}:${PULSAR_ADMIN_PORT} --broker-service-url pulsar://${SERVER_IP}:${PULSAR_BROKER_PORT} || echo 'Cluster metadata already exists'"
|
|
||||||
depends_on:
|
|
||||||
zookeeper:
|
|
||||||
condition: service_healthy
|
|
||||||
networks:
|
|
||||||
- pulsar-net
|
|
||||||
|
|
||||||
bookie:
|
bookie:
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
||||||
container_name: pulsar-bookie
|
container_name: pulsar-bookie
|
||||||
@ -50,11 +37,10 @@ services:
|
|||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "2"
|
cpus: "2"
|
||||||
memory: 2g
|
memory: 4g
|
||||||
command: >
|
command: >
|
||||||
/bin/bash -c
|
/bin/bash -c
|
||||||
"bin/apply-config-from-env.py conf/bookkeeper.conf &&
|
"bin/apply-config-from-env.py conf/bookkeeper.conf &&
|
||||||
(bin/bookkeeper shell metaformat -n --force || echo 'Bookie already formatted') &&
|
|
||||||
bin/pulsar bookie"
|
bin/pulsar bookie"
|
||||||
environment:
|
environment:
|
||||||
- PULSAR_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
|
- PULSAR_MEM=-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g
|
||||||
@ -63,12 +49,16 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
zookeeper:
|
zookeeper:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
pulsar-cluster-init:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
networks:
|
networks:
|
||||||
- pulsar-net
|
- pulsar-net
|
||||||
volumes:
|
volumes:
|
||||||
- pulsar-bookkeeper-data:/pulsar/data/bookkeeper
|
- pulsar-bookkeeper-data:/pulsar/data/bookkeeper
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "bin/bookkeeper", "shell", "bookiesanity"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
broker:
|
broker:
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
||||||
@ -79,7 +69,7 @@ services:
|
|||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "2"
|
cpus: "2"
|
||||||
memory: 2g
|
memory: 4g
|
||||||
command: >
|
command: >
|
||||||
/bin/bash -c
|
/bin/bash -c
|
||||||
"bin/apply-config-from-env.py conf/broker.conf && bin/pulsar broker"
|
"bin/apply-config-from-env.py conf/broker.conf && bin/pulsar broker"
|
||||||
@ -119,9 +109,7 @@ services:
|
|||||||
zookeeper:
|
zookeeper:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
bookie:
|
bookie:
|
||||||
condition: service_started
|
condition: service_healthy
|
||||||
pulsar-cluster-init:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
networks:
|
networks:
|
||||||
- pulsar-net
|
- pulsar-net
|
||||||
volumes:
|
volumes:
|
||||||
@ -134,40 +122,6 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
start_period: 60s
|
start_period: 60s
|
||||||
|
|
||||||
pulsar-init:
|
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.0.6
|
|
||||||
container_name: pulsar-init
|
|
||||||
hostname: pulsar-init
|
|
||||||
command: >
|
|
||||||
/bin/bash -c
|
|
||||||
"
|
|
||||||
# 等待broker就绪
|
|
||||||
until bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' clusters list; do
|
|
||||||
echo 'Waiting for Pulsar broker to be ready...'
|
|
||||||
sleep 5
|
|
||||||
done;
|
|
||||||
|
|
||||||
# 创建租户和命名空间
|
|
||||||
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' tenants create public --allowed-clusters pulsar-cluster-1 -r admin || echo 'Tenant public already exists';
|
|
||||||
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces create public/default || echo 'Namespace public/default already exists';
|
|
||||||
|
|
||||||
# 创建非持久化主题
|
|
||||||
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' topics create non-persistent://public/default/default-topic || echo 'Topic non-persistent://public/default/default-topic already exists';
|
|
||||||
|
|
||||||
# 设置命名空间策略
|
|
||||||
echo 'Setting namespace policies...';
|
|
||||||
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces set-subscription-types-enabled public/default --types NonDurable;
|
|
||||||
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces set-message-ttl public/default --messageTTL 0;
|
|
||||||
bin/pulsar-admin --admin-url http://pulsar-broker:${PULSAR_ADMIN_PORT} --auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationBasic --auth-params '{\"userId\":\"${PULSAR_ADMIN_USER}\",\"password\":\"${PULSAR_ADMIN_PASSWORD}\"}' namespaces set-retention public/default --sizeLimit -1 --timeLimit -1;
|
|
||||||
|
|
||||||
echo 'Pulsar initialization completed with Basic Authentication!';
|
|
||||||
"
|
|
||||||
depends_on:
|
|
||||||
broker:
|
|
||||||
condition: service_healthy
|
|
||||||
networks:
|
|
||||||
- pulsar-net
|
|
||||||
|
|
||||||
iotdb-standalone-service:
|
iotdb-standalone-service:
|
||||||
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
|
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.4-standalone
|
||||||
hostname: iotdb-standalone
|
hostname: iotdb-standalone
|
||||||
@ -209,8 +163,8 @@ services:
|
|||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "2.0"
|
cpus: "1.0"
|
||||||
memory: 2g
|
memory: 1g
|
||||||
ports:
|
ports:
|
||||||
- "${REDIS_PORT}:6379"
|
- "${REDIS_PORT}:6379"
|
||||||
volumes:
|
volumes:
|
||||||
@ -260,8 +214,7 @@ services:
|
|||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "2.0"
|
memory: 8g
|
||||||
memory: 4g
|
|
||||||
ports:
|
ports:
|
||||||
- "${ADMIN_API_PORT}:10500"
|
- "${ADMIN_API_PORT}:10500"
|
||||||
volumes:
|
volumes:
|
||||||
@ -292,7 +245,7 @@ services:
|
|||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: "1.0"
|
cpus: "1.0"
|
||||||
memory: 2g
|
memory: 500mb
|
||||||
ports:
|
ports:
|
||||||
- "${ADMIN_WEB_PORT}:8080"
|
- "${ADMIN_WEB_PORT}:8080"
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
|
|||||||
@ -143,27 +143,7 @@ sleep 10
|
|||||||
# 启动主服务
|
# 启动主服务
|
||||||
echo "第六步:🚀 启动 部署主脚本 ..."
|
echo "第六步:🚀 启动 部署主脚本 ..."
|
||||||
|
|
||||||
# 检查是否是Pulsar重启
|
docker compose docker-compose-init.yml up -d
|
||||||
if [ -d "./pulsar/zookeeper-data" ] && [ "$(ls -A ./pulsar/zookeeper-data)" ]; then
|
|
||||||
echo "⚠️ 检测到Pulsar数据目录已存在,可能是重启操作"
|
|
||||||
echo "🧹 清理Pulsar状态数据以确保正常启动..."
|
|
||||||
|
|
||||||
# 停止可能运行的服务
|
|
||||||
docker compose down
|
|
||||||
|
|
||||||
# 清理Pulsar状态数据(保留数据目录)
|
|
||||||
echo "清理Zookeeper状态..."
|
|
||||||
sudo rm -rf ./pulsar/zookeeper-data/*
|
|
||||||
echo "清理BookKeeper状态..."
|
|
||||||
sudo rm -rf ./pulsar/bookkeeper-data/*
|
|
||||||
echo "清理Pulsar broker状态..."
|
|
||||||
sudo rm -rf ./pulsar/pulsar-data/*
|
|
||||||
|
|
||||||
echo "✅ Pulsar状态数据已清理"
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker compose up -d
|
|
||||||
|
|
||||||
# 等待IoTDB启动完成
|
# 等待IoTDB启动完成
|
||||||
echo "⏳ 等待IoTDB服务启动完成..."
|
echo "⏳ 等待IoTDB服务启动完成..."
|
||||||
@ -220,4 +200,15 @@ echo " MySQL: mysql -h ${SERVER_IP} -P ${MYSQL_PORT} -uroot -p${MYSQL_ROOT_PAS
|
|||||||
echo " IoTDB: docker exec -it iotdb-standalone ./start-cli.sh -h iotdb-standalone -u root -p Lixiao@1980"
|
echo " IoTDB: docker exec -it iotdb-standalone ./start-cli.sh -h iotdb-standalone -u root -p Lixiao@1980"
|
||||||
echo ""
|
echo ""
|
||||||
echo "🎯 等待服务启动完成..."
|
echo "🎯 等待服务启动完成..."
|
||||||
echo "⏳ 请等待几分钟让所有服务完全启动"
|
echo "⏳ 请等待3分钟让所有服务完全初始化成功"
|
||||||
|
sleep 180
|
||||||
|
echo "🎯 服务初始化完成..."
|
||||||
|
echo "⏳ 然后等待1分钟让所有服务完全停止 docker compose docker-compose-init.yml down"
|
||||||
|
|
||||||
|
docker compose docker-compose-init.yml down
|
||||||
|
|
||||||
|
sleep 60
|
||||||
|
echo "🎯 初始化服务已经完成停止......"
|
||||||
|
echo "⏳ 最后再通过 启动最终生产环境,移除初始化依赖,等待服务最终启动完成。"
|
||||||
|
|
||||||
|
docker compose up -d
|
||||||
|
|||||||
@ -276,9 +276,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DockerComposeShells", "Dock
|
|||||||
DockerComposeShells\adminapi\conf\appsettings.Development.json = DockerComposeShells\adminapi\conf\appsettings.Development.json
|
DockerComposeShells\adminapi\conf\appsettings.Development.json = DockerComposeShells\adminapi\conf\appsettings.Development.json
|
||||||
DockerComposeShells\adminapi\conf\appsettings.json = DockerComposeShells\adminapi\conf\appsettings.json
|
DockerComposeShells\adminapi\conf\appsettings.json = DockerComposeShells\adminapi\conf\appsettings.json
|
||||||
DockerComposeShells\docker-compose-iotdb-standalone.yml = DockerComposeShells\docker-compose-iotdb-standalone.yml
|
DockerComposeShells\docker-compose-iotdb-standalone.yml = DockerComposeShells\docker-compose-iotdb-standalone.yml
|
||||||
|
DockerComposeShells\docker-compose-init.yml = DockerComposeShells\docker-compose-init.yml
|
||||||
DockerComposeShells\docker-compose.yml = DockerComposeShells\docker-compose.yml
|
DockerComposeShells\docker-compose.yml = DockerComposeShells\docker-compose.yml
|
||||||
DockerComposeShells\iotdb\init\init-iot-db.sql = DockerComposeShells\iotdb\init\init-iot-db.sql
|
|
||||||
DockerComposeShells\mysql\init\init-db.sql = DockerComposeShells\mysql\init\init-db.sql
|
DockerComposeShells\mysql\init\init-db.sql = DockerComposeShells\mysql\init\init-db.sql
|
||||||
|
DockerComposeShells\iotdb\init\init-iot-db.sql = DockerComposeShells\iotdb\init\init-iot-db.sql
|
||||||
DockerComposeShells\redis\conf\redis.conf = DockerComposeShells\redis\conf\redis.conf
|
DockerComposeShells\redis\conf\redis.conf = DockerComposeShells\redis\conf\redis.conf
|
||||||
DockerComposeShells\start-pulsar.sh = DockerComposeShells\start-pulsar.sh
|
DockerComposeShells\start-pulsar.sh = DockerComposeShells\start-pulsar.sh
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user