部署dataxweb
部署dataxweb
1. 创建目录结构
mkdir -p datax-web-standalone
cd datax-web-standalone
mkdir -p config logs jobs
2. docker-compose.yml
# datax-web-standalone/docker-compose.yml
version: '3.8'services:datax-web:image: hametan/datax-web:2.1.2container_name: datax-webports:- "9527:9527"environment:- TZ=Asia/Shanghai- JAVA_OPTS=-Xms512m -Xmx1024m -Dfile.encoding=UTF-8volumes:- ./config:/opt/datax-web/config- ./logs:/opt/datax-web/logs- ./jobs:/opt/datax-web/jobsrestart: unless-stoppedhealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9527/actuator/health"]interval: 30stimeout: 10sretries: 3start_period: 60slogging:driver: "json-file"options:max-size: "10m"max-file: "3"# 如果需要MySQL数据库支持mysql:image: mysql:8.0container_name: datax-mysqlports:- "3306:3306"environment:- MYSQL_ROOT_PASSWORD=root123- MYSQL_DATABASE=datax- MYSQL_USER=datax- MYSQL_PASSWORD=datax123volumes:- mysql_data:/var/lib/mysqlrestart: unless-stoppedcommand: --default-authentication-plugin=mysql_native_passwordvolumes:mysql_data:
3. DataX-Web配置文件
# datax-web-standalone/config/application.yml
server:port: 9527servlet:context-path: /spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://mysql:3306/datax?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: dataxpassword: datax123hikari:minimum-idle: 5maximum-pool-size: 20auto-commit: trueidle-timeout: 30000pool-name: DataxHikariCPmax-lifetime: 900000connection-timeout: 10000connection-test-query: SELECT 1# 日志配置logging:level:com.alibaba.datax: DEBUGcom.alibaba.datax.web: DEBUGpattern:console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"# DataX配置
datax:job:admin:addresses: http://datax-web:9527executor:appname: datax-executorport: 9999logpath: /opt/datax-web/logslogretentiondays: 7
4. 启动脚本
# datax-web-standalone/start.sh
#!/bin/bashecho "�� 启动DataX-Web服务..."# 创建必要的目录
mkdir -p config logs jobs# 检查端口是否被占用
if lsof -Pi :9527 -sTCP:LISTEN -t >/dev/null ; thenecho "❌ 端口9527已被占用,请检查其他服务"exit 1
fi# 启动服务
echo "📦 拉取镜像..."
docker-compose pullecho "🔧 启动容器..."
docker-compose up -d# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 30# 检查服务状态
if docker-compose ps | grep -q "Up"; thenecho "✅ DataX-Web启动成功!"echo "🌐 访问地址: http://localhost:9527"echo "👤 默认用户名: admin"echo "🔑 默认密码: 123456"
elseecho "❌ DataX-Web启动失败,请查看日志:"docker-compose logs datax-web
fi
5. 停止脚本
# datax-web-standalone/stop.sh
#!/bin/bashecho "�� 停止DataX-Web服务..."docker-compose downecho "✅ DataX-Web已停止"
6. 查看日志脚本
# datax-web-standalone/logs.sh
#!/bin/bashecho "📋 查看DataX-Web日志..."docker-compose logs -f datax-web
🔧 常见问题排查
1. 检查容器状态
# 查看容器状态
docker-compose ps# 查看详细日志
docker-compose logs datax-web# 进入容器调试
docker exec -it datax-web bash
2. 检查端口占用
# 检查9527端口
netstat -tlnp | grep 9527
# 或者
lsof -i :9527
3. 检查镜像是否存在
# 拉取镜像
docker pull hametan/datax-web:2.1.2# 查看镜像
docker images | grep datax
快速启动
# 1. 创建目录
mkdir -p datax-web-standalone
cd datax-web-standalone# 2. 创建配置文件
# 复制上面的docker-compose.yml和application.yml# 3. 启动服务
chmod +x start.sh
./start.sh# 4. 访问服务
# 浏览器打开: http://localhost:9527
⚠️ 可能的问题和解决方案
- 端口冲突: 确保9527端口未被占用
- 内存不足: 确保有足够内存(至少1GB)
- 镜像拉取失败: 检查网络连接,可能需要配置镜像源
- 数据库连接失败: 确保MySQL服务正常启动
这个单独的配置应该能解决你的DataX-Web启动问题!