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