A Guide to Deploying Dolphinscheduler With Docker

cover
10 Jul 2024

Docker deployment aims to start and deploy Apache Dolphinscheduler services quickly in a container.

Prerequisites

  • Docker

Single-node Deployment of Dolphinscheduler Using Containers

  1. Please download the source package apache-dolphinscheduler — src.tar.gz from Download

  • First, ensure the ports required for service startup are not occupied:

port_list=(12345 25333 5432)
for port in ${port_list[@]}; do
  netstat -an | grep $port
done
# No output means the ports are not occupied

  • If the ports are occupied:

vim docker-compose.yml

  • Find dolphinscheduler-api, and modify the ports.
# Default content
ports:
   - "12345:12345"
   - "25333:25333"

# Modify as needed, e.g.:
ports:
   - "22345:12345"
   - "35333:25333"

2. Install Postgresql and Dolphinscheduler services:

tar -zxvf apache-dolphinscheduler-<version>-src.tar.gz
cd apache-dolphinscheduler-<version>-src/deploy/docker
# Initialize database, etc.
docker-compose --profile schema up -d 
# Start all services
docker-compose --profile all up -d

Distributed Deployment of Dolphinscheduler Using Containers

  1. After modifying the .env file in the deploy folder, copy it to other servers.

  2. On other servers, where you want to start Dolphinscheduler services (e.g., Dolphinscheduler-api), execute the startup command:

docker-compose up -d dolphinscheduler-api

Using Non-containerized Postgresql and Zookeeper

  1. Modify environment variables:

# Enter the Deploy directory
cd apache-dolphinscheduler-<version>-src/deploy/docker
vim .env
## Modify the following contents
# Database name
DATABASE=dolp
# Database connection address
SPRING_DATASOURCE_URL=jdbc:postgresql://10.0.8.14:15432/dolp
# Zookeeper connection address
REGISTRY_ZOOKEEPER_CONNECT_STRING=10.0.8.14:12181
# Username for connecting to the database
SPRING_DATASOURCE_USERNAME=dolp
# Password for connecting to the database
SPRING_DATASOURCE_PASSWORD=111111

  1. Initialization:

docker-compose --profile schema up -d

  1. Start Dolphinscheduler services:
# Start the worker service
docker-compose up -d dolphinscheduler-worker
# Start the master service
docker-compose up -d dolphinscheduler-master
# Start the alert service
docker-compose up -d dolphinscheduler-alert
# Start the API service
docker-compose up -d dolphinscheduler-api