Commit f1d8c151 authored by liwenhe1993's avatar liwenhe1993
Browse files

Add docker-compose.yml

parent db7c0cbd
Loading
Loading
Loading
Loading
+253 −0
Original line number Diff line number Diff line
# 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"

networks:
  dolphinscheduler-postgresql:
    driver: bridge
  dolphinscheduler-zookeeper:
    driver: bridge
  dolphinscheduler-api:
    driver: bridge
  dolphinscheduler-frontend:
    driver: bridge
  dolphinscheduler-alert:
    driver: bridge
  dolphinscheduler-master:
    driver: bridge
  dolphinscheduler-worker:
    driver: bridge

volumes:
  dolphinscheduler-postgresql:
  dolphinscheduler-zookeeper:
  dolphinscheduler-api:
  dolphinscheduler-frontend:
  dolphinscheduler-alert:
  dolphinscheduler-master:
  dolphinscheduler-worker-data:
  dolphinscheduler-worker-logs:
  dolphinscheduler-worker-task-env:

services:

  dolphinscheduler-postgresql:
    image: bitnami/postgresql:latest
    container_name: dolphinscheduler-postgresql
    ports:
    - 5432:5432
    environment:
      TZ: Asia/Shanghai
      POSTGRESQL_USERNAME: root
      POSTGRESQL_PASSWORD: root
      POSTGRESQL_DATABASE: dolphinscheduler
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "${POSTGRESQL_USERNAME}", "-d", "{POSTGRESQL_PASSWORD}", "-h", "localhost", "5432"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    volumes: 
    - dolphinscheduler-postgresql:/bitnami/postgresql
    networks:
    - dolphinscheduler-postgresql

  dolphinscheduler-zookeeper:
    image: bitnami/zookeeper:latest
    container_name: dolphinscheduler-zookeeper
    ports:
    - 2181:2181
    environment:
      TZ: Asia/Shanghai
      ALLOW_ANONYMOUS_LOGIN: "yes"
    healthcheck:
      test: ["CMD-SHELL", "nc -z localhost 2181"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    volumes:
    - dolphinscheduler-zookeeper:/bitnami/zookeeper
    networks:
    - dolphinscheduler-zookeeper

  dolphinscheduler-api:
    image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
    container_name: dolphinscheduler-api
    command: ["api-server"]
    ports:
    - 12345:12345
    environment:
      TZ: Asia/Shanghai
      POSTGRESQL_HOST: dolphinscheduler-postgresql
      POSTGRESQL_PORT: 5432
      POSTGRESQL_USERNAME: root
      POSTGRESQL_PASSWORD: root
      POSTGRESQL_DATABASE: dolphinscheduler
      ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:12345"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    depends_on:
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper
    volumes:
    - dolphinscheduler-api:/opt/dolphinscheduler/logs
    networks: 
    - dolphinscheduler-api
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper

  dolphinscheduler-frontend:
    image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
    container_name: dolphinscheduler-frontend
    command: ["frontend"]
    ports:
    - 8888:8888
    environment:
      TZ: Asia/Shanghai
      FRONTEND_API_SERVER_HOST: dolphinscheduler-api
      FRONTEND_API_SERVER_PORT: 12345
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8888"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    depends_on:
    - dolphinscheduler-api
    volumes:
    - dolphinscheduler-frontend:/var/log/nginx
    networks:
    - dolphinscheduler-api

  dolphinscheduler-alert:
    image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
    container_name: dolphinscheduler-alert
    command: ["alert-server"]
    environment:
      TZ: Asia/Shanghai
      XLS_FILE_PATH: "/tmp/xls"
      MAIL_SERVER_HOST: ""
      MAIL_SERVER_PORT: ""
      MAIL_SENDER: ""
      MAIL_USER: ""
      MAIL_PASSWD: ""
      MAIL_SMTP_STARTTLS_ENABLE: "false"
      MAIL_SMTP_SSL_ENABLE: "false"
      MAIL_SMTP_SSL_TRUST: ""
      ENTERPRISE_WECHAT_ENABLE: "false"
      ENTERPRISE_WECHAT_CORP_ID: ""
      ENTERPRISE_WECHAT_SECRET: ""
      ENTERPRISE_WECHAT_AGENT_ID: ""
      ENTERPRISE_WECHAT_USERS: ""
      POSTGRESQL_HOST: dolphinscheduler-postgresql
      POSTGRESQL_PORT: 5432
      POSTGRESQL_USERNAME: root
      POSTGRESQL_PASSWORD: root
      POSTGRESQL_DATABASE: dolphinscheduler
    healthcheck:
      test: ["CMD", "/root/checkpoint.sh", "AlertServer"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    depends_on:
    - dolphinscheduler-postgresql
    volumes: 
    - dolphinscheduler-alert:/opt/dolphinscheduler/logs
    networks: 
    - dolphinscheduler-alert
    - dolphinscheduler-postgresql

  dolphinscheduler-master:
    image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
    container_name: dolphinscheduler-master
    command: ["master-server"]
    ports: 
    - 5678:5678
    environment: 
      TZ: Asia/Shanghai
      MASTER_EXEC_THREADS: "100"
      MASTER_EXEC_TASK_NUM: "20"
      MASTER_HEARTBEAT_INTERVAL: "10"
      MASTER_TASK_COMMIT_RETRYTIMES: "5"
      MASTER_TASK_COMMIT_INTERVAL: "1000"
      MASTER_MAX_CPULOAD_AVG: "100"
      MASTER_RESERVED_MEMORY: "0.1"
      POSTGRESQL_HOST: dolphinscheduler-postgresql
      POSTGRESQL_PORT: 5432
      POSTGRESQL_USERNAME: root
      POSTGRESQL_PASSWORD: root
      POSTGRESQL_DATABASE: dolphinscheduler
      ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
    healthcheck:
      test: ["CMD", "/root/checkpoint.sh", "MasterServer"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    depends_on: 
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper
    volumes: 
    - dolphinscheduler-master:/opt/dolphinscheduler/logs
    networks: 
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper

  dolphinscheduler-worker:
    image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
    container_name: dolphinscheduler-worker
    command: ["worker-server"]
    ports: 
    - 1234:1234
    - 50051:50051
    environment: 
      TZ: Asia/Shanghai
      WORKER_EXEC_THREADS: "100"
      WORKER_HEARTBEAT_INTERVAL: "10"
      WORKER_FETCH_TASK_NUM: "3"
      WORKER_MAX_CPULOAD_AVG: "100"
      WORKER_RESERVED_MEMORY: "0.1"
      WORKER_GROUP: "default"
      DOLPHINSCHEDULER_DATA_BASEDIR_PATH: "/tmp/dolphinscheduler"
      POSTGRESQL_HOST: dolphinscheduler-postgresql
      POSTGRESQL_PORT: 5432
      POSTGRESQL_USERNAME: root
      POSTGRESQL_PASSWORD: root
      POSTGRESQL_DATABASE: dolphinscheduler
      ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
    healthcheck:
      test: ["CMD", "/root/checkpoint.sh", "WorkerServer"]
      interval: 30s
      timeout: 5s
      retries: 3
      # start_period: 30s
    depends_on: 
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper
    volumes: 
    - dolphinscheduler-worker-data:/tmp/dolphinscheduler
    - dolphinscheduler-worker-logs:/opt/dolphinscheduler/logs
    - dolphinscheduler-worker-task-env:/opt/dolphinscheduler/conf/env/
    networks: 
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper
 No newline at end of file