部署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.2
    container_name: datax-web
    ports:
      - "9527:9527"
    environment:
      - TZ=Asia/Shanghai
      - JAVA_OPTS=-Xms512m -Xmx1024m -Dfile.encoding=UTF-8
    volumes:
      - ./config:/opt/datax-web/config
      - ./logs:/opt/datax-web/logs
      - ./jobs:/opt/datax-web/jobs
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9527/actuator/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  # 如果需要MySQL数据库支持
  mysql:
    image: mysql:8.0
    container_name: datax-mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root123
      - MYSQL_DATABASE=datax
      - MYSQL_USER=datax
      - MYSQL_PASSWORD=datax123
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped
    command: --default-authentication-plugin=mysql_native_password

volumes:
  mysql_data:

3. DataX-Web配置文件

# datax-web-standalone/config/application.yml
server:
  port: 9527
  servlet:
    context-path: /

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://mysql:3306/datax?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: datax
    password: datax123
    hikari:
      minimum-idle: 5
      maximum-pool-size: 20
      auto-commit: true
      idle-timeout: 30000
      pool-name: DataxHikariCP
      max-lifetime: 900000
      connection-timeout: 10000
      connection-test-query: SELECT 1

  # 日志配置
  logging:
    level:
      com.alibaba.datax: DEBUG
      com.alibaba.datax.web: DEBUG
    pattern:
      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:9527
    executor:
      appname: datax-executor
      port: 9999
      logpath: /opt/datax-web/logs
      logretentiondays: 7

4. 启动脚本

# datax-web-standalone/start.sh
#!/bin/bash

echo "�� 启动DataX-Web服务..."

# 创建必要的目录
mkdir -p config logs jobs

# 检查端口是否被占用
if lsof -Pi :9527 -sTCP:LISTEN -t >/dev/null ; then
    echo "❌ 端口9527已被占用,请检查其他服务"
    exit 1
fi

# 启动服务
echo "📦 拉取镜像..."
docker-compose pull

echo "🔧 启动容器..."
docker-compose up -d

# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 30

# 检查服务状态
if docker-compose ps | grep -q "Up"; then
    echo "✅ DataX-Web启动成功!"
    echo "🌐 访问地址: http://localhost:9527"
    echo "👤 默认用户名: admin"
    echo "🔑 默认密码: 123456"
else
    echo "❌ DataX-Web启动失败,请查看日志:"
    docker-compose logs datax-web
fi

5. 停止脚本

# datax-web-standalone/stop.sh
#!/bin/bash

echo "�� 停止DataX-Web服务..."

docker-compose down

echo "✅ DataX-Web已停止"

6. 查看日志脚本

# datax-web-standalone/logs.sh
#!/bin/bash

echo "📋 查看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

⚠️ 可能的问题和解决方案

  1. 端口冲突: 确保9527端口未被占用
  2. 内存不足: 确保有足够内存(至少1GB)
  3. 镜像拉取失败: 检查网络连接,可能需要配置镜像源
  4. 数据库连接失败: 确保MySQL服务正常启动

这个单独的配置应该能解决你的DataX-Web启动问题!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐