Files
2026-07-13 13:10:28 +08:00

108 lines
3.6 KiB
YAML

networks:
stock-dev-network:
driver: bridge
version: "3"
services:
#### 使用node 镜像进行编译,构建成 js 文件给nginx 使用。
frontend-build:
image: pythonstock/frontend-dev:latest
build:
context: .
dockerfile: docker/DevFrontendDockerfile
container_name: frontend-build
volumes:
# 设置开发目录,方便开发调试,生产环境拷贝到 /data/html
- "../frontend:/usr/src/app"
- "./data/html:/data/html"
environment:
LANG: zh_CN.UTF-8
LC_CTYPE: zh_CN.UTF-8
networks:
stock-dev-network: {}
# 入口写死,手动启动应用。每次构建时候使用,构建完成结束
entrypoint: /usr/src/app/docker-build.sh
nginx:
image: docker.m.daocloud.io/library/nginx:stable-alpine
container_name: nginx
ports:
- "8080:8080"
volumes:
# 设置开发目录,方便开发调试
- "./data/html:/usr/share/nginx/html"
- "./nginx/nginx.conf:/etc/nginx/conf.d/default.conf"
environment:
LANG: zh_CN.UTF-8
LC_CTYPE: zh_CN.UTF-8
restart: always
networks:
stock-dev-network: {}
depends_on:
- backend
backend:
image: pythonstock/backend-dev:latest
build:
context: .
dockerfile: docker/DevBackendDockerfile
container_name: backend
ports:
- "8888:8888"
- "9090:9090"
volumes:
# 设置开发目录,方便开发调试
- "../backend/jobs/crontab:/var/spool/cron/crontabs/root"
- "../backend/jobs/cron.minutely:/etc/cron.minutely"
- "../backend/jobs/cron.hourly:/etc/cron.hourly"
- "../backend/jobs/cron.daily:/etc/cron.daily"
- "../backend/jobs/cron.monthly:/etc/cron.monthly"
- "../backend:/data/stock"
- "../backend/supervisor:/data/supervisor"
- "./data/notebooks:/data/notebooks"
- "./data/logs:/data/logs"
environment:
MYSQL_HOST: mysql-stock
MYSQL_USER: root
MYSQL_PWD: mysql-stock
MYSQL_DB: stock_data
MYSQL_PORT: 3306
LANG: zh_CN.UTF-8
LC_CTYPE: zh_CN.UTF-8
PYTHONIOENCODING: utf-8
restart: always
networks:
stock-dev-network: {}
# 入口写死,手动启动应用。
#entrypoint: sleep 999999d
depends_on:
- mysql-stock
mysql-stock:
# image: hub.atomgit.com/library/mysql:5.7
# https://hub.atomgit.com/repos/amd64/mysql
image: docker.m.daocloud.io/library/mysql:8
container_name: mysql-stock
# 执行命令:https://juejin.cn/s/mysql%20healthcheck%20docker-compose
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-pmysql-stock"]
interval: 10s
timeout: 5s
retries: 5
ports:
- "3306:3306"
networks:
stock-dev-network: {}
volumes:
- "./mysql/my.cnf:/etc/mysql/my.cnf"
- "./data/mysql-stock/data:/var/lib/mysql"
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
MYSQL_ROOT_PASSWORD: mysql-stock
MYSQL_DATABASE: stock_data
TZ: Asia/Shanghai
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_general_ci',
'--max_connections=3000'
]
restart: always