services: mysql: container_name: bisheng-mysql image: mysql:8.0 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: "1234" # 数据库密码,如果修改需要同步修改bisheng/congfig/config.yaml配置database_url的mysql连接密码 MYSQL_DATABASE: bisheng TZ: Asia/Shanghai volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/mysql/conf/my.cnf:/etc/mysql/my.cnf - ${DOCKER_VOLUME_DIRECTORY:-.}/mysql/data:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "exit | mysql -u root -p$$MYSQL_ROOT_PASSWORD"] start_period: 30s interval: 20s timeout: 10s retries: 4 restart: on-failure redis: container_name: bisheng-redis image: redis:7.0.4 ports: - "6379:6379" environment: TZ: Asia/Shanghai volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/data/redis:/data - ${DOCKER_VOLUME_DIRECTORY:-.}/redis/redis.conf:/etc/redis.conf command: redis-server /etc/redis.conf healthcheck: test: ["CMD-SHELL", 'redis-cli ping|grep -e "PONG\|NOAUTH"'] interval: 10s timeout: 5s retries: 3 restart: on-failure backend: container_name: bisheng-backend image: dataelement/bisheng-backend:v2.4.0 ports: - "7860:7860" environment: TZ: Asia/Shanghai BS_MILVUS_CONNECTION_ARGS: '{"host":"milvus","port":"19530","user":"","password":"","secure":false}' BS_MILVUS_IS_PARTITION: 'true' BS_MILVUS_PARTITION_SUFFIX: '1' BS_ELASTICSEARCH_URL: 'http://elasticsearch:9200' BS_ELASTICSEARCH_SSL_VERIFY: '{}' # 可根据自己部署的密码进行配置 '{"basic_auth": ("elastic", "elastic")}' BS_MINIO_SCHEMA: 'false' BS_MINIO_CERT_CHECK: 'false' BS_MINIO_ENDPOINT: 'minio:9000' BS_MINIO_SHAREPOINT: 'minio:9000' BS_MINIO_ACCESS_KEY: 'minioadmin' BS_MINIO_SECRET_KEY: 'minioadmin' volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/bisheng/config/config.yaml:/app/bisheng/config.yaml - ${DOCKER_VOLUME_DIRECTORY:-.}/bisheng/entrypoint.sh:/app/entrypoint.sh - ${DOCKER_VOLUME_DIRECTORY:-.}/data/bisheng:/app/data security_opt: - seccomp:unconfined command: sh entrypoint.sh api # 启动api服务 restart: on-failure healthcheck: test: ["CMD", "curl", "-f", "http://localhost:7860/health"] start_period: 30s interval: 90s timeout: 30s retries: 3 depends_on: mysql: condition: service_healthy redis: condition: service_healthy backend_worker: container_name: bisheng-backend-worker image: dataelement/bisheng-backend:v2.4.0 environment: TZ: Asia/Shanghai BS_MILVUS_CONNECTION_ARGS: '{"host":"milvus","port":"19530","user":"","password":"","secure":false}' BS_MILVUS_IS_PARTITION: 'true' BS_MILVUS_PARTITION_SUFFIX: '1' BS_ELASTICSEARCH_URL: 'http://elasticsearch:9200' BS_ELASTICSEARCH_SSL_VERIFY: '{}' # 可根据自己部署的密码进行配置 '{"basic_auth": ("elastic", "elastic")}' BS_MINIO_SCHEMA: 'false' BS_MINIO_CERT_CHECK: 'false' BS_MINIO_ENDPOINT: 'minio:9000' BS_MINIO_SHAREPOINT: 'minio:9000' BS_MINIO_ACCESS_KEY: 'minioadmin' BS_MINIO_SECRET_KEY: 'minioadmin' volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/bisheng/config/config.yaml:/app/bisheng/config.yaml - ${DOCKER_VOLUME_DIRECTORY:-.}/bisheng/entrypoint.sh:/app/entrypoint.sh - ${DOCKER_VOLUME_DIRECTORY:-.}/data/bisheng:/app/data security_opt: - seccomp:unconfined command: sh entrypoint.sh worker # 启动celery的异步worker服务,用来处理一些耗时的任务 restart: on-failure depends_on: mysql: condition: service_healthy redis: condition: service_healthy frontend: container_name: bisheng-frontend image: dataelement/bisheng-frontend:v2.4.0 ports: - "3001:3001" environment: TZ: Asia/Shanghai volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/nginx/nginx.conf:/etc/nginx/nginx.conf - ${DOCKER_VOLUME_DIRECTORY:-.}/nginx/conf.d:/etc/nginx/conf.d restart: on-failure depends_on: - backend elasticsearch: container_name: bisheng-es image: docker.io/bitnamilegacy/elasticsearch:8.12.0 user: root ports: - "9200:9200" - "9300:9300" environment: TZ: Asia/Shanghai volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/data/es:/bitnami/elasticsearch/data restart: on-failure etcd: container_name: bisheng-milvus-etcd image: quay.io/coreos/etcd:v3.5.5 environment: ETCD_AUTO_COMPACTION_MODE: revision ETCD_AUTO_COMPACTION_RETENTION: "1000" ETCD_QUOTA_BACKEND_BYTES: "4294967296" ETCD_SNAPSHOT_COUNT: "50000" TZ: Asia/Shanghai volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/data/milvus-etcd:/etcd command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd restart: on-failure healthcheck: test: ["CMD", "etcdctl", "endpoint", "health"] interval: 30s timeout: 20s retries: 3 minio: container_name: bisheng-milvus-minio image: minio/minio:RELEASE.2023-03-20T20-16-18Z environment: MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin ports: - "9100:9000" - "9101:9001" volumes: - /etc/localtime:/etc/localtime:ro - ${DOCKER_VOLUME_DIRECTORY:-.}/data/milvus-minio:/minio_data command: minio server /minio_data --console-address ":9001" restart: on-failure healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 milvus: container_name: bisheng-milvus-standalone image: milvusdb/milvus:v2.5.10 command: ["milvus", "run", "standalone"] security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 volumes: - /etc/localtime:/etc/localtime:ro - ${DOCKER_VOLUME_DIRECTORY:-.}/data/milvus:/var/lib/milvus restart: on-failure healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] start_period: 90s interval: 30s timeout: 20s retries: 3 ports: - "19530:19530" - "9091:9091" depends_on: - etcd - minio