| # |
| # 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" |
| |
| services: |
| apisix-dashboard: |
| image: apache/apisix-dashboard:3.0.1-alpine |
| restart: always |
| volumes: |
| - ./dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml |
| ports: |
| - "9000:9000" |
| networks: |
| apisix: |
| |
| apisix: |
| image: apache/apisix:3.4.0-debian |
| restart: always |
| volumes: |
| - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro |
| depends_on: |
| - etcd |
| ports: |
| - "9180:9180/tcp" |
| - "9080:9080/tcp" |
| - "9091:9091/tcp" |
| - "9443:9443/tcp" |
| - "9092:9092/tcp" |
| networks: |
| apisix: |
| |
| etcd: |
| image: rancher/coreos-etcd:v3.4.15-arm64 |
| user: root |
| restart: always |
| volumes: |
| - ./etcd_data:/etcd-data |
| environment: |
| ETCD_UNSUPPORTED_ARCH: "arm64" |
| ETCD_ENABLE_V2: "true" |
| ALLOW_NONE_AUTHENTICATION: "yes" |
| ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379" |
| ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379" |
| ETCD_DATA_DIR: "/etcd-data" |
| ports: |
| - "2379:2379/tcp" |
| networks: |
| apisix: |
| |
| web1: |
| image: nginx:1.19.10-alpine |
| restart: always |
| volumes: |
| - ./upstream/web1.conf:/etc/nginx/nginx.conf |
| ports: |
| - "9081:80/tcp" |
| environment: |
| - NGINX_PORT=80 |
| networks: |
| apisix: |
| |
| web2: |
| image: nginx:1.19.10-alpine |
| restart: always |
| volumes: |
| - ./upstream/web2.conf:/etc/nginx/nginx.conf |
| ports: |
| - "9082:80/tcp" |
| environment: |
| - NGINX_PORT=80 |
| networks: |
| apisix: |
| |
| networks: |
| apisix: |
| driver: bridge |