API-vendor/container/docker-compose.yml

87 lines
1.9 KiB
YAML

version: '3.8'
services:
# MySQL 服务(可选,如果需要可以取消注释)
# mysql:
# image: mysql:8.0
# container_name: mysql-container
# restart: on-failure
# environment:
# MYSQL_ROOT_PASSWORD: 12345678
# MYSQL_DATABASE: inventory_v2
# ports:
# - "23306:3306"
# volumes:
# - ./mysql/data:/var/lib/mysql
# networks:
# - app-network
# API 服务
api:
image: node:22-alpine
container_name: api-container
restart: on-failure
environment:
- NODE_ENV=prod
# 数据库连接信息(连接到外部 MySQL 容器)
- MYSQL_HOST=host.docker.internal
- MYSQL_PORT=23306
- MYSQL_USERNAME=root
- MYSQL_PASSWORD=root
- MYSQL_DATABASE=inventory
volumes:
- ../../API:/app
working_dir: /app
command: sh -c "npm run dev"
ports:
- "7001:7001"
networks:
- app-network
# Cube 服务
cube:
image: cubejs/cube:latest
ports:
- 4000:4000
environment:
- CUBEJS_DEV_MODE=true
- CUBEJS_DB_TYPE=mysql
- CUBEJS_DB_HOST=host.docker.internal
- CUBEJS_DB_PORT=23306
- CUBEJS_DB_USER=cubejs
- CUBEJS_DB_PASS=12345678
- CUBEJS_DB_NAME=inventory_v2
- CUBEJS_DB_SSL=false
- CUBEJS_API_SECRET=your-secret-here
- CUBEJS_WEB_SOCKETS=true
# - CUBEJS_REFRESH_SCHEMA=true
volumes:
- ./cube/conf:/cube/conf
# networks:
# - app-network
# network_mode: host
# WEB 服务
web:
image: nginx:alpine
container_name: web-container
restart: on-failure
volumes:
- ../../WEB/dist:/usr/share/nginx/html
- ../../WEB/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"
depends_on:
- api
networks:
- app-network
# volumes:
# mysql-data:
# driver: local
networks:
app-network:
driver: bridge