Dolphinscheduler-3.2.2 本地运行及 Docker 构建部署

首先进入官方网站下载源代码并解压
在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
调用如下命令即可完成自行编译后的容器构建

更多推荐



所有评论(0)