首先进入官方网站下载源代码并解压

https://www.apache.org/dyn/closer.lua/dolphinscheduler/3.2.2/apache-dolphinscheduler-3.2.2-src.tar.gz

在IDEA ➡️ 设置 ➡️ 项目设置 ➡️ SDK选JDK1.8,语言级别选SDK默认值

分别将 master、worker、api、alert-server 中的 logback-spring.xml 文件中的日志级别进行修改便于调试,以 master 为例

Dolphinscheduler 默认使用 PostgeSQL 数据库,创建 dolphinscheduler 数据库,并导入 dolphinscheduler_postgesql.sql 文件进行初始化

先启动 PostgreSQL 及 ZooKeeper 服务,确保均使用默认端口,对各服务模块进行相应的启动配置,以 master 为例

根据说明完成 dolphinscheduler_ui 模块的环境搭建

访问 http://localhost:5173/,默认的用户和密码分别为 admin 和 dolphinscheduler123

最终可视化效果展示

构建 docker-compose 镜像可以选择直接使用官方给出的 docker-compose.yml 文件,自动拉取官方的镜像进行构建

如果有二次开发或配置改动的需求,可以自行编译再构建成镜像,官方已给出 Dockerfile 文件,以master 为例

将需要用到的 master-server 编译文件以及对应的 Dockerfile 复制到包含 docker-compose.yml 的新文件夹,结构如下所示例,将指定镜像的方式改为通过 Dockerfile 文件进行构建,同时可以将 worker-server 需要运行的配置环境提前放入并在 worker-server 中的 dolphinscheduler_env.sh 中配置运行的 bin 路径

修改后的 docker-compose.yml 文件如下

services:

#  type dolphinscheduler_postgresql.sql | docker exec -i -e PGPASSWORD=root dolphinscheduler-postgresql psql -h 127.0.0.1 -U root -d dolphinscheduler

  dolphinscheduler-zookeeper:
    image: bitnami/zookeeper:3.7.1
    profiles: ["all"]
    environment:
      ALLOW_ANONYMOUS_LOGIN: "yes"
      ZOO_4LW_COMMANDS_WHITELIST: srvr,ruok,wchs,cons
    volumes:
      - dolphinscheduler-zookeeper:/bitnami/zookeeper
    healthcheck:
      test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/2181"]
      interval: 5s
      timeout: 60s
      retries: 120
    networks:
      - dolphinscheduler-net

  dolphinscheduler-schema-initializer:
    image: ${HUB}/dolphinscheduler-tools:${TAG}
    env_file: .env
    profiles: ["schema"]
    command: [ tools/bin/upgrade-schema.sh ]
    depends_on:
      dolphinscheduler-postgresql:
        condition: service_healthy
    volumes:
      - dolphinscheduler-logs:/opt/dolphinscheduler/logs
      - dolphinscheduler-shared-local:/opt/soft
      - dolphinscheduler-resource-local:/dolphinscheduler
    networks:
      - dolphinscheduler-net

  dolphinscheduler-api:
    image: ${HUB}/dolphinscheduler-api:${TAG}
    ports:
      - "12345:12345"
      - "25333:25333"
    profiles: ["all"]
    env_file: .env
    healthcheck:
      test: [ "CMD", "curl", "http://localhost:12345/dolphinscheduler/actuator/health" ]
      interval: 30s
      timeout: 5s
      retries: 3
    depends_on:
      dolphinscheduler-zookeeper:
        condition: service_healthy
    volumes:
      - dolphinscheduler-logs:/opt/dolphinscheduler/logs
      - dolphinscheduler-shared-local:/opt/soft
      - dolphinscheduler-resource-local:/dolphinscheduler
    networks:
      - dolphinscheduler-net

  dolphinscheduler-alert:
    image: ${HUB}/dolphinscheduler-alert-server:${TAG}
    profiles: ["all"]
    env_file: .env
    healthcheck:
      test: [ "CMD", "curl", "http://localhost:50053/actuator/health" ]
      interval: 30s
      timeout: 5s
      retries: 3
    depends_on:
      dolphinscheduler-zookeeper:
        condition: service_healthy
    volumes:
      - dolphinscheduler-logs:/opt/dolphinscheduler/logs
    networks:
      - dolphinscheduler-net

  dolphinscheduler-master:
    image: ${HUB}/dolphinscheduler-master:${TAG}
    profiles: ["all"]
    env_file: .env
    healthcheck:
      test: [ "CMD", "curl", "http://localhost:5679/actuator/health" ]
      interval: 30s
      timeout: 5s
      retries: 3
    depends_on:
      dolphinscheduler-zookeeper:
        condition: service_healthy
    volumes:
      - dolphinscheduler-logs:/opt/dolphinscheduler/logs
      - dolphinscheduler-shared-local:/opt/soft
    networks:
      - dolphinscheduler-net

  dolphinscheduler-worker:
    image: ${HUB}/dolphinscheduler-worker:${TAG}
    profiles: ["all"]
    env_file: .env
    healthcheck:
      test: [ "CMD", "curl", "http://localhost:1235/actuator/health" ]
      interval: 30s
      timeout: 5s
      retries: 3
    depends_on:
      dolphinscheduler-zookeeper:
        condition: service_healthy
    volumes:
      - dolphinscheduler-worker-data:/tmp/dolphinscheduler
      - dolphinscheduler-logs:/opt/dolphinscheduler/logs
      - dolphinscheduler-shared-local:/opt/soft
      - dolphinscheduler-resource-local:/dolphinscheduler
    networks:
      - dolphinscheduler-net

networks:
  dolphinscheduler-net:
    driver: bridge

volumes:
  dolphinscheduler-mysql:
  dolphinscheduler-postgresql:
  dolphinscheduler-zookeeper:
  dolphinscheduler-worker-data:
  dolphinscheduler-logs:
  dolphinscheduler-shared-local:
  dolphinscheduler-resource-local:

对应的 .env 文件配置如下

TZ=Asia/Shanghai
DATABASE=postgresql
SPRING_JACKSON_TIME_ZONE=UTC
SPRING_DATASOURCE_URL=jdbc:postgresql://postgresql:5432/dolphinscheduler
REGISTRY_ZOOKEEPER_CONNECT_STRING=zookeeper:2181

调用如下命令即可完成自行编译后的容器构建

 

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐