| # Licensed to the Apache Software Foundation (ASF) under one or more contributor |
| # license agreements; and to You under the Apache License, Version 2.0. |
| version: '3' |
| services: |
| db: |
| image: apache/couchdb:2.1 |
| ports: |
| - "5984:5984" |
| environment: |
| COUCHDB_USER: whisk_admin |
| COUCHDB_PASSWORD: some_passw0rd |
| volumes: |
| - ~/tmp/openwhisk/couchdb:/usr/local/var/lib/couchdb:rw |
| |
| # KAFKA SERVICES |
| zookeeper: |
| image: zookeeper:3.4 |
| ports: |
| - "2181:2181" |
| - "2888:2888" |
| - "3888:3888" |
| environment: |
| ZOO_SERVERS: server.1=0.0.0.0:2888:3888 |
| ZOO_MY_ID: 1 |
| kafka: |
| image: wurstmeister/kafka:0.11.0.1 |
| links: |
| - zookeeper |
| depends_on: |
| - zookeeper |
| ports: |
| - "9092:9092" |
| environment: |
| KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 |
| KAFKA_ADVERTISED_HOST_NAME: kafka |
| volumes: |
| - /var/run/docker.sock:/var/run/docker.sock |
| - ~/tmp/openwhisk/kafka:/kafka:rw |
| |
| # WHISK CONTROLLER |
| controller: |
| image: ${DOCKER_IMAGE_PREFIX:-openwhisk}/controller |
| command: /bin/sh -c "exec /init.sh 0 >> /home/owuser/controller-local_logs.log 2>&1" |
| links: |
| - db:db.docker |
| - kafka:kafka.docker |
| - zookeeper:zookeeper.docker |
| depends_on: |
| - db |
| - kafka |
| env_file: |
| - ./docker-whisk-controller.env # env vars shared |
| - ~/tmp/openwhisk/local.env # generated during make setup |
| environment: |
| COMPONENT_NAME: controller |
| PORT: 8888 |
| |
| KAFKA_HOSTS: kafka.docker:9092 |
| ZOOKEEPER_HOSTS: zookeeper.docker:2181 |
| |
| CONFIG_whisk_couchdb_provider: CouchDB |
| CONFIG_whisk_couchdb_protocol: http |
| CONFIG_whisk_couchdb_port: 5984 |
| CONFIG_whisk_couchdb_host: db.docker |
| CONFIG_whisk_couchdb_username: whisk_admin |
| CONFIG_whisk_couchdb_password: some_passw0rd |
| CONFIG_akka_remote_netty_tcp_hostname: controller |
| CONFIG_akka_remote_netty_tcp_port: 2551 |
| CONFIG_akka_remote_netty_tcp_bindPort: 2551 |
| |
| CONFIG_akka_actor_provider: cluster |
| |
| LOADBALANCER_HOST: ${DOCKER_COMPOSE_HOST} |
| LOADBALANCER_HOST_PORT: 443 |
| volumes: |
| - ~/tmp/openwhisk/controller/logs:/logs |
| ports: |
| - "8888:8888" |
| - "2551:2551" |
| - "9222:9222" |
| |
| # WHISK INVOKER AGENT |
| invoker: |
| image: ${DOCKER_IMAGE_PREFIX:-openwhisk}/invoker |
| command: /bin/sh -c "exec /init.sh --id 0 >> /logs/invoker-local_logs.log 2>&1" |
| privileged: true |
| pid: "host" |
| userns_mode: "host" |
| links: |
| - db:db.docker |
| - kafka:kafka.docker |
| - zookeeper:zookeeper.docker |
| depends_on: |
| - db |
| - kafka |
| env_file: |
| - ./docker-whisk-controller.env # env vars shared |
| - ~/tmp/openwhisk/local.env # generated during make setup |
| environment: |
| COMPONENT_NAME: invoker |
| SERVICE_NAME: invoker0 |
| PORT: 8085 |
| |
| KAFKA_HOSTS: kafka.docker:9092 |
| ZOOKEEPER_HOSTS: zookeeper.docker:2181 |
| |
| CONFIG_whisk_couchdb_provider: CouchDB |
| CONFIG_whisk_couchdb_protocol: http |
| CONFIG_whisk_couchdb_port: 5984 |
| CONFIG_whisk_couchdb_host: db.docker |
| CONFIG_whisk_couchdb_username: whisk_admin |
| CONFIG_whisk_couchdb_password: some_passw0rd |
| |
| EDGE_HOST: ${DOCKER_COMPOSE_HOST} |
| EDGE_HOST_APIPORT: 443 |
| |
| CONFIG_whisk_containerFactory_containerArgs_network: openwhisk_default |
| |
| WHISK_API_HOST_NAME: ${DOCKER_COMPOSE_HOST} |
| volumes: |
| - ~/tmp/openwhisk/invoker/logs:/logs |
| - /var/run/docker.sock:/var/run/docker.sock |
| - /var/lib/docker/containers:/containers |
| - /sys/fs/cgroup:/sys/fs/cgroup |
| ports: |
| - "8085:8085" |
| - "9333:9222" |
| |
| # The API Gateway is currently used to expose the Controller API |
| # see apigateway/conf/whisk-docker-compose.conf |
| # Minio is used to mock an object storage ( i.e. S3) that hosts the api-gateway configuration. |
| # Minio also exposes a web UI to browse the files: http://localhost:9001/minio/api-gateway/ |
| minio: |
| image: minio/minio:RELEASE.2018-07-13T00-09-07Z |
| command: |
| - server |
| - /data |
| environment: |
| - MINIO_ACCESS_KEY=5VCTEQOQ0GR0NV1T67GN |
| - MINIO_SECRET_KEY=8MBK5aJTR330V1sohz4n1i7W5Wv/jzahARNHUzi3 |
| volumes: |
| - ~/tmp/openwhisk/minio:/data:rw |
| ports: |
| - "9001:9000" |
| redis: |
| image: redis:2.8 |
| ports: |
| - "6379:6379" |
| apigateway: |
| image: openwhisk/apigateway:latest |
| links: |
| - controller:whisk.controller |
| - redis:redis.docker |
| - minio:minio.docker |
| environment: |
| - REDIS_HOST=${DOCKER_COMPOSE_HOST} |
| - REDIS_PORT=6379 |
| - PUBLIC_MANAGEDURL_PORT=9090 |
| - PUBLIC_MANAGEDURL_HOST=${DOCKER_COMPOSE_HOST} |
| - REMOTE_CONFIG=minio:api-gateway |
| depends_on: |
| - controller |
| - redis |
| - minio |
| volumes: |
| - ~/tmp/openwhisk/api-gateway-ssl:/etc/ssl:ro |
| - ~/tmp/openwhisk/api-gateway-config/api-gateway/generated-conf.d:/etc/api-gateway/generated-conf.d |
| - ~/tmp/openwhisk/rclone:/root/.config/rclone:rw |
| ports: |
| - "80:80" |
| - "443:443" |
| - "9000:9000" |
| - "9090:8080" |
| |
| kafka-rest: |
| image: confluentinc/cp-kafka-rest:3.3.1 |
| hostname: kafka-rest |
| environment: |
| - ACCESS_CONTROL_ALLOW_ORIGIN_DEFAULT="*" |
| - KAFKA_REST_ZOOKEEPER_CONNECT=zookeeper:2181 |
| - KAFKA_REST_HOST_NAME=kafka-rest |
| - KAFKA_REST_LISTENERS=http://kafka-rest:8082 |
| - KAFKA_REST_CONSUMER_REQUEST_TIMEOUT_MS=30000 |
| - KAFKA_REST_BOOTSTRAP_SERVERS=PLAINTEXT://kafka:9092 |
| links: |
| - zookeeper |
| - kafka |
| depends_on: |
| - zookeeper |
| - kafka |
| |
| kafka-topics-ui: |
| image: landoop/kafka-topics-ui:0.9.3 |
| environment: |
| - KAFKA_REST_PROXY_URL=http://kafka-rest:8082 |
| - KAFKA_REST_BOOTSTRAP_SERVERS=PLAINTEXT://kafka:9092 |
| - PROXY=true |
| ports: |
| - 8001:8000 |
| links: |
| - kafka |
| - kafka-rest |