| version: "3" |
| |
| services: |
| apisix: |
| build: |
| context: ./.. |
| dockerfile: alpine/Dockerfile |
| args: |
| APISIX_VERSION: master |
| restart: always |
| volumes: |
| - ./apisix_log:/usr/local/apisix/logs |
| - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro |
| depends_on: |
| - etcd |
| ports: |
| - "9080:9080/tcp" |
| - "9443:9443/tcp" |
| networks: |
| apisix: |
| ipv4_address: 172.18.5.11 |
| |
| etcd: |
| image: bitnami/etcd:3.4.9 |
| user: root |
| restart: always |
| volumes: |
| - ./etcd_data:/etcd_data |
| environment: |
| ETCD_DATA_DIR: /etcd_data |
| 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" |
| ports: |
| - "2379:2379/tcp" |
| networks: |
| apisix: |
| ipv4_address: 172.18.5.10 |
| |
| web1: |
| image: nginx:1.18.0-alpine |
| restart: always |
| volumes: |
| - ./upstream/web1.conf:/etc/nginx/nginx.conf |
| ports: |
| - "9081:80/tcp" |
| environment: |
| - NGINX_PORT=80 |
| networks: |
| apisix: |
| ipv4_address: 172.18.5.12 |
| |
| web2: |
| image: nginx:1.18.0-alpine |
| restart: always |
| volumes: |
| - ./upstream/web2.conf:/etc/nginx/nginx.conf |
| ports: |
| - "9082:80/tcp" |
| environment: |
| - NGINX_PORT=80 |
| networks: |
| apisix: |
| ipv4_address: 172.18.5.13 |
| |
| networks: |
| apisix: |
| driver: bridge |
| ipam: |
| config: |
| - subnet: 172.18.0.0/16 |