apisix Docker & Self-Hosted Deployment

GitHub

The Cloud-Native API Gateway and AI Gateway

RAW Compose
1. Pull Image (DOCKERHUB) docker pull library/redis
2. Docker Run (1-Click Launch) docker run -d --name apisix -p 6379:6379 --restart always redis:latest
3. Podman Run podman run -d --name apisix -p 6379:6379 --restart always redis:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/redis:latest
5. ORAS Pull (OCI Artifact) oras pull redis:latest
6. Compose Deployment docker compose up -d
ci/pod/docker-compose.common.yml
Download .yml
#
# 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:
  ## Redis
  apisix_redis:
    # The latest image is the latest stable version
    image: redis:latest
    restart: unless-stopped
    volumes:
      - ./t/certs:/certs
    command: "--tls-port 6380 \
            --tls-cert-file /certs/mtls_server.crt \
            --tls-key-file /certs/mtls_server.key \
            --tls-ca-cert-file /certs/mtls_ca.crt \
            --tls-auth-clients no \
            --user alice on +@all ~* \\&* \\>somepassword"
    ports:
      - "6379:6379"
      - "6380:6380"

  ## Etcd
  etcd_old:
    image: bitnamilegacy/etcd:3.3.8
    restart: unless-stopped
    env_file:
      - ci/pod/etcd/env/common.env
    environment:
      ETCD_ADVERTISE_CLIENT_URLS: http://0.0.0.0:2379
    ports:
      - "3379:2379"
      - "3380:2380"

  etcd:
    image: bitnamilegacy/etcd:3.5.4
    restart: unless-stopped
    env_file:
      - ci/pod/etcd/env/common.env
    environment:
        ETCD_ADVERTISE_CLIENT_URLS: http://0.0.0.0:2379
    ports:
      - "2379:2379"
      - "2380:2380"

  etcd_tls:
    image: bitnamilegacy/etcd:3.5.4
    restart: unless-stopped
    env_file:
      - ci/pod/etcd/env/common.env
    environment:
      ETCD_ADVERTISE_CLIENT_URLS: https://0.0.0.0:12379
      ETCD_LISTEN_CLIENT_URLS: https://0.0.0.0:12379
      ETCD_CERT_FILE: /certs/etcd.pem
      ETCD_KEY_FILE: /certs/etcd.key
    ports:
      - "12379:12379"
      - "12380:12380"
    volumes:
      - ./t/certs:/certs

  etcd_mtls:
    image: bitnamilegacy/etcd:3.5.4
    restart: unless-stopped
    env_file:
      - ci/pod/etcd/env/common.env
    environment:
      ETCD_ADVERTISE_CLIENT_URLS: https://0.0.0.0:22379
      ETCD_LISTEN_CLIENT_URLS: https://0.0.0.0:22379
      ETCD_CERT_FILE: /certs/mtls_server.crt
      ETCD_KEY_FILE: /certs/mtls_server.key
      ETCD_CLIENT_CERT_AUTH: "true"
      ETCD_TRUSTED_CA_FILE: /certs/mtls_ca.crt
    ports:
      - "22379:22379"
      - "22380:22380"
    volumes:
      - ./t/certs:/certs


  ## Redis cluster
  redis-cluster:
    image: vishnunair/docker-redis-cluster:latest
    restart: unless-stopped
    ports:
      - "5000:6379"
      - "5002:6380"
      - "5003:6381"
      - "5004:6382"
      - "5005:6383"
      - "5006:6384"


  ## HashiCorp Vault
  vault:
    image: vault:1.9.0
    container_name: vault
    restart: unless-stopped
    ports:
      - "8200:8200"
    cap_add:
      - IPC_LOCK
    environment:
      VAULT_DEV_ROOT_TOKEN_ID: root
      VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
    command: [ "vault", "server", "-dev" ]


  ## LocalStack
  localstack:
    image: localstack/localstack:4.12
    container_name: localstack
    restart: unless-stopped
    ports:
      - "127.0.0.1:4566:4566"            # LocalStack Gateway


  ## httpbin - HTTP Request & Response Service
  httpbin:
    image: kennethreitz/httpbin
    container_name: httpbin
    restart: unless-stopped
    ports:
      - "8280:80"
      - "8281:80"