- Implements Apache APISIX packaging for Cloudron platform. - Includes Dockerfile, CloudronManifest.json, and start.sh. - Configured to use Cloudron's etcd addon. 🤖 Generated with Gemini CLI Co-Authored-By: Gemini <noreply@google.com>
305 lines
7.8 KiB
YAML
305 lines
7.8 KiB
YAML
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership.
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
# (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
version: "3.8"
|
|
|
|
services:
|
|
## Eureka
|
|
eureka:
|
|
image: bitinit/eureka
|
|
env_file:
|
|
- ci/pod/eureka/env/common.env
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8761:8761"
|
|
|
|
## Consul
|
|
consul_1:
|
|
image: consul:1.7
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8500:8500"
|
|
command: [ "consul", "agent", "-server", "-bootstrap-expect=1", "-client", "0.0.0.0", "-log-level", "info", "-data-dir=/consul/data", "-enable-script-checks" ]
|
|
networks:
|
|
consul_net:
|
|
|
|
consul_2:
|
|
image: consul:1.7
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8600:8500"
|
|
command: [ "consul", "agent", "-server", "-bootstrap-expect=1", "-client", "0.0.0.0", "-log-level", "info", "-data-dir=/consul/data", "-enable-script-checks" ]
|
|
networks:
|
|
consul_net:
|
|
|
|
consul_3:
|
|
image: hashicorp/consul:1.16.2
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8502:8500"
|
|
command: [ "consul", "agent", "-server", "-bootstrap-expect=1", "-client", "0.0.0.0", "-log-level", "info", "-data-dir=/consul/data", "-enable-script-checks", "-ui", "-hcl", "acl = {\nenabled = true\ndefault_policy = \"deny\"\nenable_token_persistence = true\ntokens = {\nagent = \"2b778dd9-f5f1-6f29-b4b4-9a5fa948757a\"\n}}" ]
|
|
networks:
|
|
consul_net:
|
|
|
|
## Consul cluster
|
|
consul_node_1:
|
|
image: consul:1.7
|
|
restart: unless-stopped
|
|
ports:
|
|
- "9500:8500"
|
|
- "8300:8300"
|
|
- "8301:8301"
|
|
- "8302:8302"
|
|
- "9600:8600"
|
|
command: [ "consul", "agent", "-server", "-bootstrap-expect=1", "-bind", "0.0.0.0", "-client", "0.0.0.0", "-node", "node-1", "-log-level", "info", "-data-dir=/consul/data", "-enable-script-checks" ]
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8500/"]
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 5
|
|
networks:
|
|
consul_cluster_net:
|
|
aliases:
|
|
- consul.cluster
|
|
|
|
consul_node_2:
|
|
image: consul:1.7
|
|
restart: unless-stopped
|
|
environment:
|
|
- CONSUL_BIND_INTERFACE=eth0
|
|
ports:
|
|
- "9501:8500"
|
|
command: [ "consul", "agent", "-server", "-bind", "0.0.0.0", "-client", "0.0.0.0", "-retry-join", "consul.cluster", "-node", "node-2", "-log-level", "info", "-data-dir=/consul/data", "-enable-script-checks" ]
|
|
depends_on:
|
|
consul_node_1:
|
|
condition: service_healthy
|
|
networks:
|
|
consul_cluster_net:
|
|
aliases:
|
|
- consul.cluster
|
|
|
|
consul_node_3:
|
|
image: consul:1.7
|
|
restart: unless-stopped
|
|
environment:
|
|
- CONSUL_BIND_INTERFACE=eth0
|
|
ports:
|
|
- "9502:8500"
|
|
command: [ "consul", "agent", "-server", "-bind", "0.0.0.0", "-client", "0.0.0.0", "-retry-join", "consul.cluster", "-node", "node-3", "-log-level", "info", "-data-dir=/consul/data", "-enable-script-checks" ]
|
|
depends_on:
|
|
consul_node_1:
|
|
condition: service_healthy
|
|
networks:
|
|
consul_cluster_net:
|
|
aliases:
|
|
- consul.cluster
|
|
|
|
## Nacos cluster
|
|
nacos_auth:
|
|
hostname: nacos1
|
|
image: nacos/nacos-server:1.4.1
|
|
env_file:
|
|
- ci/pod/nacos/env/common.env
|
|
environment:
|
|
NACOS_AUTH_ENABLE: "true"
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8848:8848"
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos_no_auth:
|
|
hostname: nacos2
|
|
image: nacos/nacos-server:1.4.1
|
|
env_file:
|
|
- ci/pod/nacos/env/common.env
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8858:8848"
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos_server_health_check:
|
|
build:
|
|
context: ci/pod/nacos/healthcheck
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
CHECK_URI: "http://nacos2:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=2"
|
|
tty: true
|
|
# debug healthcheck script
|
|
# volumes:
|
|
# - ./ci/pod/nacos/healthcheck/nacos-server-healthcheck.sh:/nacos-server-healthcheck.sh
|
|
healthcheck:
|
|
test: [ "CMD", "bash", "/nacos-server-healthcheck.sh" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 60
|
|
start_period: 10s
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos_service_health_check:
|
|
build:
|
|
context: ci/pod/nacos/healthcheck
|
|
dockerfile: Dockerfile
|
|
# debug healthcheck script
|
|
# volumes:
|
|
# - ./ci/pod/nacos/healthcheck/nacos-service-healthcheck.sh:/nacos-service-healthcheck.sh
|
|
tty: true
|
|
healthcheck:
|
|
test: [ "CMD", "bash", "/nacos-service-healthcheck.sh" ]
|
|
interval: 5s
|
|
timeout: 30s
|
|
retries: 60
|
|
start_period: 10s
|
|
networks:
|
|
nacos_net:
|
|
|
|
### Nacos services
|
|
nacos-service1:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 1
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18001:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos-service2:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 2
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18002:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos-service3:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 1
|
|
NAMESPACE: test_ns
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18003:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos-service4:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 1
|
|
GROUP: test_group
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18004:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos-service5:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 1
|
|
GROUP: test_group
|
|
NAMESPACE: test_ns
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18005:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos-service6:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 3
|
|
GROUP: test_group2
|
|
NAMESPACE: test_ns
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18006:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
nacos-service7:
|
|
build:
|
|
context: ci/pod/nacos/service
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- ci/pod/nacos/env/service.env
|
|
environment:
|
|
SUFFIX_NUM: 4
|
|
GROUP: test_group
|
|
NAMESPACE: test_ns2
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18007:18001"
|
|
depends_on:
|
|
nacos_server_health_check:
|
|
condition: service_healthy
|
|
networks:
|
|
nacos_net:
|
|
|
|
|
|
networks:
|
|
consul_cluster_net:
|
|
consul_net:
|
|
nacos_net:
|