62 lines
1.3 KiB
YAML
62 lines
1.3 KiB
YAML
|
|
version: '3.8'
|
||
|
|
|
||
|
|
services:
|
||
|
|
db:
|
||
|
|
image: mysql:8.0
|
||
|
|
container_name: lingxi_crm_db
|
||
|
|
environment:
|
||
|
|
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
||
|
|
MYSQL_DATABASE: ${DB_NAME}
|
||
|
|
ports:
|
||
|
|
- "${DB_PORT}:3306"
|
||
|
|
volumes:
|
||
|
|
- ./server/db/crm.sql:/docker-entrypoint-initdb.d/crm.sql
|
||
|
|
- db_data:/var/lib/mysql
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD}"]
|
||
|
|
timeout: 20s
|
||
|
|
retries: 10
|
||
|
|
|
||
|
|
redis:
|
||
|
|
image: redis:alpine
|
||
|
|
container_name: lingxi_crm_redis
|
||
|
|
ports:
|
||
|
|
- "${REDIS_PORT}:6379"
|
||
|
|
volumes:
|
||
|
|
- redis_data:/data
|
||
|
|
|
||
|
|
server:
|
||
|
|
build:
|
||
|
|
context: ./server
|
||
|
|
dockerfile: Dockerfile
|
||
|
|
container_name: lingxi_crm_server
|
||
|
|
depends_on:
|
||
|
|
db:
|
||
|
|
condition: service_healthy
|
||
|
|
redis:
|
||
|
|
condition: service_started
|
||
|
|
ports:
|
||
|
|
- "${SERVER_PORT}:8000"
|
||
|
|
volumes:
|
||
|
|
- ./server/config.docker.yaml:/app/config.yaml
|
||
|
|
- server_uploads:/app/source
|
||
|
|
environment:
|
||
|
|
- RUN_ENV=prod
|
||
|
|
|
||
|
|
web:
|
||
|
|
build:
|
||
|
|
context: ./web
|
||
|
|
dockerfile: Dockerfile
|
||
|
|
args:
|
||
|
|
- VITE_API_BASE_URL=${API_BASE_URL}
|
||
|
|
container_name: lingxi_crm_web
|
||
|
|
ports:
|
||
|
|
- "${WEB_PORT}:80"
|
||
|
|
depends_on:
|
||
|
|
- server
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
db_data:
|
||
|
|
redis_data:
|
||
|
|
server_uploads:
|