适用场景:DataEase v2.10.22 企业版离线安装包,其他版本默认 Docker bridge 网络模式改为 host 网络模式。
说明:本文档基于 DataEase v2.10.22 企业版离线安装包整理。其他 DataEase 版本的 compose 文件名称、服务名称、镜像版本或部分配置路径可能略有差异,但整体修改思路一致:将服务改为 network_mode: host,移除端口映射和自定义 Docker 网络,并把容器名访问地址改为 127.0.0.1 或宿主机实际地址。
注意:可以使用 host 模式部署 DataEase,但以下端口不能被宿主机上的其他服务占用:9080、8100、9000、9001、2379、2380、3000、3306、33060。
1. 进入运行目录
cd /opt/dataease2.02. 停止 DataEase
dectl stop3. 修改 docker-compose 文件
DataEase 企业版会组合加载多个 compose 文件:
docker-compose.yml
docker-compose-mysql.yml
docker-compose-apisix.yml
docker-compose-task.yml
docker-compose-playwright.ymlhost 网络模式的通用原则:
每个服务都增加
network_mode: host每个服务都删除或注释
ports每个服务都删除或注释
networks文件底部的
networks: dataease-network:也删除或注释
3.1 修改 docker-compose.yml
编辑:
vi /opt/dataease2.0/docker-compose.yml这个文件里主要是 dataease 服务。
重点:
增加
network_mode: host删除
ports删除服务里的
networks删除文件底部的
networks
原始结构类似:
services:
dataease:
image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.22
stop_signal: SIGTERM
stop_grace_period: 15s
container_name: dataease
ports:
- ${DE_PORT}:8100
volumes:
- ${DE_BASE}/dataease2.0/conf:/opt/apps/config
- ${DE_BASE}/dataease2.0/logs:/opt/dataease2.0/logs
depends_on:
mysql-de:
condition: service_healthy
networks:
- dataease-network
networks:
dataease-network:修改后:
services:
dataease:
image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.22
stop_signal: SIGTERM
stop_grace_period: 15s
container_name: dataease
network_mode: host
volumes:
- ${DE_BASE}/dataease2.0/conf:/opt/apps/config
- ${DE_BASE}/dataease2.0/logs:/opt/dataease2.0/logs
depends_on:
mysql-de:
condition: service_healthy3.2 修改 docker-compose-mysql.yml
编辑:
vi /opt/dataease2.0/docker-compose-mysql.yml这个文件里主要是 mysql-de 服务。
重点:
增加
network_mode: host建议把
container_name: ${DE_MYSQL_HOST}改成container_name: mysql-de删除服务里的
networks
如果 .env 中 DE_MYSQL_HOST=127.0.0.1,并且这里继续使用 container_name: ${DE_MYSQL_HOST},MySQL 容器名会变成 127.0.0.1,不推荐。
原始结构类似:
services:
mysql-de:
image: registry.cn-qingdao.aliyuncs.com/dataease/mysql:8.4.5
container_name: ${DE_MYSQL_HOST}
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u${DE_MYSQL_USER}", "-p${DE_MYSQL_PASSWORD}", "--protocol","tcp"]
interval: 5s
timeout: 3s
retries: 10
env_file:
- ${DE_BASE}/dataease2.0/conf/mysql.env
volumes:
- ${DE_BASE}/dataease2.0/conf/my.cnf:/etc/mysql/conf.d/my.cnf
- ${DE_BASE}/dataease2.0/bin/mysql:/docker-entrypoint-initdb.d/
- ${DE_BASE}/dataease2.0/data/mysql:/var/lib/mysql
networks:
- dataease-network修改后:
services:
mysql-de:
image: registry.cn-qingdao.aliyuncs.com/dataease/mysql:8.4.5
container_name: mysql-de
network_mode: host
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u${DE_MYSQL_USER}", "-p${DE_MYSQL_PASSWORD}", "--protocol","tcp"]
interval: 5s
timeout: 3s
retries: 10
env_file:
- ${DE_BASE}/dataease2.0/conf/mysql.env
volumes:
- ${DE_BASE}/dataease2.0/conf/my.cnf:/etc/mysql/conf.d/my.cnf
- ${DE_BASE}/dataease2.0/bin/mysql:/docker-entrypoint-initdb.d/
- ${DE_BASE}/dataease2.0/data/mysql:/var/lib/mysql3.3 修改 docker-compose-apisix.yml
编辑:
vi /opt/dataease2.0/docker-compose-apisix.yml这个文件里有三个服务,都要改:
apisix-dashboard
apisix
etcd重点:
三个服务都增加
network_mode: host删除
apisix-dashboard的ports删除
apisix的ports删除三个服务里的
networks建议把
ETCD_ADVERTISE_CLIENT_URLS改成http://127.0.0.1:2379
apisix-dashboard
原始结构类似:
apisix-dashboard:
image: registry.cn-qingdao.aliyuncs.com/dataease/apisix-dashboard:3.0.1-alpine
container_name: apisix-dashboard
restart: always
volumes:
- ${DE_BASE}/dataease2.0/apisix/dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
ports:
- ${DE_APISIX_DASHBOARD_PORT}:9000
networks:
dataease-network:修改后:
apisix-dashboard:
image: registry.cn-qingdao.aliyuncs.com/dataease/apisix-dashboard:3.0.1-alpine
container_name: apisix-dashboard
restart: always
network_mode: host
volumes:
- ${DE_BASE}/dataease2.0/apisix/dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yamlapisix
原始结构类似:
apisix:
image: registry.cn-qingdao.aliyuncs.com/dataease/apisix:3.14.1-debian
container_name: apisix
environment:
- TZ=Asia/Shanghai
restart: always
volumes:
- ${DE_BASE}/dataease2.0/apisix/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
- ${DE_BASE}/dataease2.0/apisix/logs:/usr/local/apisix/logs
depends_on:
- etcd
ports:
- ${DE_APISIX_PORT}:9080
networks:
dataease-network:修改后:
apisix:
image: registry.cn-qingdao.aliyuncs.com/dataease/apisix:3.14.1-debian
container_name: apisix
environment:
- TZ=Asia/Shanghai
restart: always
network_mode: host
volumes:
- ${DE_BASE}/dataease2.0/apisix/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
- ${DE_BASE}/dataease2.0/apisix/logs:/usr/local/apisix/logs
depends_on:
- etcdetcd
原始结构类似:
etcd:
image: registry.cn-qingdao.aliyuncs.com/dataease/etcd:3.5.10
container_name: apisix-etcd
restart: always
volumes:
- ${DE_BASE}/dataease2.0/data/etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://apisix-etcd:2379"
networks:
dataease-network:修改后:
etcd:
image: registry.cn-qingdao.aliyuncs.com/dataease/etcd:3.5.10
container_name: apisix-etcd
restart: always
network_mode: host
volumes:
- ${DE_BASE}/dataease2.0/data/etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://127.0.0.1:2379"3.4 修改 docker-compose-task.yml
编辑:
vi /opt/dataease2.0/docker-compose-task.yml这个文件里主要是 task-actuator 服务。
重点:
增加
network_mode: host删除服务里的
networks
原始结构类似:
services:
task-actuator:
image: registry.cn-qingdao.aliyuncs.com/dataease/dataease-sync-task:v2.10.22
container_name: sync-task-actuator
volumes:
- ${DE_BASE}/dataease2.0/logs:/opt/dataease2.0/logs
networks:
- dataease-network修改后:
services:
task-actuator:
image: registry.cn-qingdao.aliyuncs.com/dataease/dataease-sync-task:v2.10.22
container_name: sync-task-actuator
network_mode: host
volumes:
- ${DE_BASE}/dataease2.0/logs:/opt/dataease2.0/logs3.5 修改 docker-compose-playwright.yml
编辑:
vi /opt/dataease2.0/docker-compose-playwright.yml这个文件里主要是 api 服务,也就是 de-playwright-api 容器。
重点:
增加
network_mode: host保留原来的
ipc: host删除服务里的
networks
原始结构类似:
services:
api:
image: registry.cn-qingdao.aliyuncs.com/dataease/de-playwright-api:v1.58.2-noble-0421
container_name: de-playwright-api
privileged: true
environment:
- CONCURRENCY=${DE_PLAYWRIGHT_CONCURRENCY}
- TZ=Asia/Shanghai
volumes:
- ${DE_BASE}/dataease2.0/logs:/opt/app/logs
restart: unless-stopped
init: true
ipc: host
shm_size: ${DE_PLAYWRIGHT_SHM_SIZE}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
networks:
- dataease-network修改后:
services:
api:
image: registry.cn-qingdao.aliyuncs.com/dataease/de-playwright-api:v1.58.2-noble-0421
container_name: de-playwright-api
privileged: true
network_mode: host
environment:
- CONCURRENCY=${DE_PLAYWRIGHT_CONCURRENCY}
- TZ=Asia/Shanghai
volumes:
- ${DE_BASE}/dataease2.0/logs:/opt/app/logs
restart: unless-stopped
init: true
ipc: host
shm_size: ${DE_PLAYWRIGHT_SHM_SIZE}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s4. 修改 DataEase 应用配置
编辑:
vi /opt/dataease2.0/conf/application.yml4.1 修改数据库连接
将数据库连接改成完整地址,不要保留 ${DE_MYSQL_DB}、${DE_MYSQL_PARAMS} 这类变量。
正确示例:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Password123@mysql4.2 修改 APISIX API 地址
将:
dataease:
apisix-api:
domain: http://apisix:9180改成:
dataease:
apisix-api:
domain: http://127.0.0.1:91804.3 修改 Playwright 地址
将:
playwright-server: http://de-playwright-api:3000/screenshot改成:
playwright-server: http://127.0.0.1:3000/screenshot4.4 修改同步任务地址
将:
task:
executor:
address: http://sync-task-actuator:9001改成:
task:
executor:
address: http://127.0.0.1:90015. 修改 APISIX 配置
编辑:
vi /opt/dataease2.0/apisix/apisix_conf/config.yaml将:
deployment:
etcd:
host:
- "http://apisix-etcd:2379"改成:
deployment:
etcd:
host:
- "http://127.0.0.1:2379"6. 修改 APISIX Dashboard 配置
编辑:
vi /opt/dataease2.0/apisix/dashboard_conf/conf.yaml将:
conf:
etcd:
endpoints:
- "http://apisix-etcd:2379"改成:
conf:
etcd:
endpoints:
- "http://127.0.0.1:2379"7. 启动服务
dectl start查看状态:
dectl status或者:
docker ps -a正常情况下应看到:
dataease Up ... (healthy)
mysql-de Up ... (healthy)
sync-task-actuator Up ... (healthy)
de-playwright-api Up ... (healthy)
apisix Up ...
apisix-etcd Up ...
apisix-dashboard Up ...8. 登录 DataEase
企业版默认入口优先访问 APISIX 端口:
http://服务器IP:9080如果访问不了,可再试 DataEase 主服务端口:
http://服务器IP:8100默认账号:
用户名:admin
密码:DataEase@123456