Apache SeaTunnel + web 容器化docker部署
使用docker compose部署
compose.yaml配置:
services:
seatunnel:
image: apache/seatunnel:2.3.13
container_name: seatunnel-zeta
restart: unless-stopped
entrypoint: >
/bin/sh -c "
/opt/seatunnel/bin/seatunnel-cluster.sh
"
ports:
- "8080:8080"
networks:
- seatunnel-web-network
mysql:
image: mysql:8.0.34
container_name: seatunnel-web-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-change_me}
MYSQL_DATABASE: ${MYSQL_DATABASE:-seatunnel_web}
MYSQL_USER: ${MYSQL_USER:-seatunnel}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-change_me}
TZ: Asia/Shanghai
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-time-zone=+08:00
ports:
- "${MYSQL_HOST_PORT:-3306}:3306"
volumes:
- mysql-data:/var/lib/mysql
healthcheck:
test:
- CMD-SHELL
- 'MYSQL_PWD="$${MYSQL_ROOT_PASSWORD}" mysqladmin ping -h 127.0.0.1 -uroot --silent'
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
networks:
- seatunnel-web-network
seatunnel-web-api:
image: ${SEATUNNEL_WEB_API_IMAGE:-seatunnel-web-api:latest}
container_name: seatunnel-web-api
restart: unless-stopped
build:
context: .
dockerfile: Dockerfile
target: backend-runtime
depends_on:
mysql:
condition: service_healthy
environment:
TZ: Asia/Shanghai
JAVA_OPTS: ${JAVA_OPTS:--Xms512m -Xmx1024m}
APP_OPTS: ${APP_OPTS:-}
SERVER_PORT: 9527
SPRING_PROFILES_ACTIVE: mysql
SEATUNNEL_WEB_DATABASE_TYPE: mysql
SEATUNNEL_WEB_DATABASE_HOST: mysql
SEATUNNEL_WEB_DATABASE_PORT: 3306
SEATUNNEL_WEB_DATABASE_NAME: ${MYSQL_DATABASE:-seatunnel_web}
SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/${MYSQL_DATABASE:-seatunnel_web}?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true"
SPRING_DATASOURCE_USERNAME: ${MYSQL_USER:-seatunnel}
SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD:-change_me}
SPRING_FLYWAY_ENABLED: "true"
SEATUNNEL_WEB_DATASOURCE_MASTER_KEY: ${SEATUNNEL_WEB_DATASOURCE_MASTER_KEY:?Please set SEATUNNEL_WEB_DATASOURCE_MASTER_KEY in .env}
expose:
- "9527"
volumes:
- seatunnel-web-logs:/opt/seatunnel-web/logs
- seatunnel-web-jdbc-drivers:/opt/seatunnel-web/jdbc-drivers
healthcheck:
test:
- CMD-SHELL
- 'bash -c "</dev/tcp/127.0.0.1/9527"'
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
networks:
- seatunnel-web-network
seatunnel-web:
image: ${SEATUNNEL_WEB_IMAGE:-seatunnel-web:latest}
container_name: seatunnel-web
restart: unless-stopped
build:
context: .
dockerfile: Dockerfile
target: frontend-runtime
healthcheck:
disable: true
depends_on:
seatunnel-web-api:
condition: service_healthy
ports:
- "${SEATUNNEL_WEB_PORT:-9527}:80"
networks:
- seatunnel-web-network
volumes:
mysql-data:
name: seatunnel-web-mysql-data
seatunnel-web-logs:
name: seatunnel-web-logs
seatunnel-web-jdbc-drivers:
name: seatunnel-web-jdbc-drivers
networks:
seatunnel-web-network:
name: seatunnel-web-network
driver: bridge
admin密码
seatunnel-web启动后,系统管理员admin密码若不知知道,可手动登入MySQL终端重置密码,密码使用Bcrypt哈希串,10轮加密
可使用在线工具生成密码Bcrypt哈希串:https://www.xyutil.com/bcrypt/zh
docker exec -it seatunnel-web-mysql bash
mysql -u root -p
mysql> use seatunnel_web;
mysql> UPDATE t_seatunnel_web_user SET user_password = 'Bcrypt哈希串' WHERE user_name = 'admin';
MySQL版本
若操作系统内核版本较低,使用新版本MySQL会报错:Fatal glibc error: CPU does not support x86-64-v2
可使用mysql:8.0.34,此版本能够支持低版本系统

浙公网安备 33010602011771号