You've already forked DataMate
* feat: Front-end data annotation page adaptation to the backend API. * feat: Implement labeling configuration editor and enhance annotation task creation form * feat: add python backend build and deployment; add backend configuration for Label Studio integration and improve logging setup * refactor: remove duplicate log configuration
143 lines
3.7 KiB
YAML
143 lines
3.7 KiB
YAML
services:
|
|
# 1) backend
|
|
datamate-backend:
|
|
container_name: datamate-backend
|
|
image: datamate-backend
|
|
restart: on-failure
|
|
privileged: true
|
|
volumes:
|
|
- dataset_volume:/dataset
|
|
- flow_volume:/flow
|
|
- log_volume:/var/log/datamate
|
|
- operator-upload-volume:/operators/upload
|
|
- operator-runtime-volume:/operators/extract
|
|
networks: [ datamate ]
|
|
depends_on:
|
|
- datamate-database
|
|
|
|
# 1) backend (Python)
|
|
datamate-backend-python:
|
|
container_name: datamate-backend-python
|
|
image: datamate-backend-python
|
|
restart: on-failure
|
|
privileged: true
|
|
environment:
|
|
- log_level=DEBUG
|
|
volumes:
|
|
- dataset_volume:/dataset
|
|
- flow_volume:/flow
|
|
- log_volume:/var/log/datamate
|
|
networks: [ datamate ]
|
|
depends_on:
|
|
- datamate-database
|
|
|
|
# 2) frontend(NodePort 30000)
|
|
datamate-frontend:
|
|
container_name: datamate-frontend
|
|
image: datamate-frontend
|
|
restart: on-failure
|
|
ports:
|
|
- "30000:80" # nodePort → hostPort
|
|
volumes:
|
|
- frontend_log_volume:/var/log/datamate/frontend
|
|
- $NGINX_CONF:/etc/nginx/conf.d/backend.conf
|
|
networks: [ datamate ]
|
|
depends_on:
|
|
- datamate-backend
|
|
- datamate-backend-python
|
|
|
|
# 3) database
|
|
datamate-database:
|
|
container_name: datamate-database
|
|
image: mysql:8
|
|
restart: on-failure
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
command: |
|
|
sh -c "
|
|
chown mysql:mysql /var/log/datamate/database &&
|
|
chmod 755 /var/log/datamate/database &&
|
|
exec docker-entrypoint.sh mysqld
|
|
"
|
|
volumes:
|
|
- mysql_volume:/var/lib/mysql
|
|
- ../../../scripts/db:/docker-entrypoint-initdb.d
|
|
- ./utf8.cnf:/etc/mysql/conf.d/utf8.cnf:ro
|
|
- database_log_volume:/var/log/datamate/database
|
|
ports:
|
|
- "3306:3306"
|
|
networks: [ datamate ]
|
|
|
|
# 3) runtime
|
|
datamate-runtime:
|
|
container_name: datamate-runtime
|
|
image: datamate-runtime
|
|
restart: on-failure
|
|
environment:
|
|
RAY_DEDUP_LOGS: "0"
|
|
RAY_TQDM_PATCH_PRINT: "0"
|
|
MYSQL_HOST: "datamate-database"
|
|
MYSQL_PORT: "3306"
|
|
MYSQL_USER: "root"
|
|
MYSQL_PASSWORD: "password"
|
|
MYSQL_DATABASE: "datamate"
|
|
PDF_FORMATTER_BASE_URL: "http://datamate-mineru:9001"
|
|
command:
|
|
- python
|
|
- /opt/runtime/datamate/operator_runtime.py
|
|
- --port
|
|
- "8081"
|
|
volumes:
|
|
- ray_log_volume:/tmp/ray
|
|
- log_volume:/var/log/datamate
|
|
- dataset_volume:/dataset
|
|
- flow_volume:/flow
|
|
- operator-runtime-volume:/opt/runtime/datamate/ops/user
|
|
networks: [ datamate ]
|
|
|
|
# 4) mineru
|
|
datamate-mineru:
|
|
container_name: datamate-mineru
|
|
image: datamate-mineru
|
|
restart: on-failure
|
|
environment:
|
|
MINERU_MODEL_SOURCE: local
|
|
MINERU_DEVICE_MODE: cpu # cpu|cuda|npu|mps
|
|
MINERU_BACKEND_MODE: pipeline
|
|
privileged: true
|
|
command:
|
|
- python
|
|
- /opt/runtime/datamate/mineru/mineru_api.py
|
|
- --port
|
|
- "9001"
|
|
volumes:
|
|
- dataset_volume:/dataset
|
|
- mineru_log_volume:/var/log/datamate/mineru
|
|
networks: [ datamate ]
|
|
profiles: [ mineru ]
|
|
|
|
volumes:
|
|
dataset_volume:
|
|
name: datamate-dataset-volume
|
|
flow_volume:
|
|
name: datamate-flow-volume
|
|
log_volume:
|
|
name: datamate-log-volume
|
|
mysql_volume:
|
|
name: datamate-mysql-volume
|
|
ray_log_volume:
|
|
name: datamate-ray-log-volume
|
|
frontend_log_volume:
|
|
name: datamate-frontend-log-volume
|
|
database_log_volume:
|
|
name: datamate-database-log-volume
|
|
operator-upload-volume:
|
|
name: datamate-operator-upload-volume
|
|
operator-runtime-volume:
|
|
name: datamate-operator-runtime-volume
|
|
|
|
networks:
|
|
datamate:
|
|
driver: bridge
|
|
name: datamate-network
|