Docker Compose 案例

复制代码
version: '3.8'

x-app: &app
  build:
    dockerfile: ./Dockerfile
  restart: unless-stopped
  working_dir: /app
  volumes:
    - .:/app/oms-odoo  # 将本地的 app 目录挂载到容器的 /app 目录
    - ./log:/var/log
#  environment:
#    - REDIS_URL=redis://host.docker.internal:6579/0
#    - CELERY_BROKER_URL=redis://host.docker.internal:6379/0
#    - OMS_REDIS_URL=redis://host.docker.internal:6379/1
#    - SERVER_URL=https://odoo-oms.dbee.hk

services:
  celery_ui:
    <<: *app
    working_dir: /app/oms-odoo/backend/src
    command: python -m celery -A main_task.app flower --port=8002
    ports:
      - "8803:8002"
    depends_on:
      - celery_worker
    env_file:
      - ./backend/docker.env

  celery_beat:
    <<: *app
    working_dir: /app/oms-odoo/backend/src
    command: python -m celery -A main_task.app beat --loglevel=info --logfile=/var/log/celery_beat.log
    depends_on:
      - celery_worker
    env_file:
      - ./backend/docker.env

  celery_worker:
    <<: *app
    working_dir: /app/oms-odoo/backend/src
    command: python -m celery -A main_task.app worker --loglevel=info --logfile=/var/log/celery_worker.log
    depends_on:
      - db
      - redis
    env_file:
      - ./backend/docker.env
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 2048M

  app:
    <<: *app
    working_dir: /app/oms-odoo/backend/src
    command: python -m uvicorn main:app --reload --port 8022 --host 0.0.0.0
    ports:
      - "8022:8022"
#    network_mode: "host"
    env_file:
      - ./backend/docker.env
    environment:
      - SERVER_URL=http://localhost:8069
    depends_on:
      - db
      - redis
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 2048M
    healthcheck: # 健康检查
      test: [ "CMD", "curl", "--fail", "http://localhost:8022/" ]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s


  db:
    image: postgres:16
    environment:
      POSTGRES_DB: oms_database
      POSTGRES_USER: username
      POSTGRES_PASSWORD: password
    ports:
      - "5632:5432"  # 如果需要访问 PostgreSQL 的端口
#    volumes:
#      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:latest
    ports:
      - "6579:6379"  # 如果需要访问 Redis 的端口

#volumes:
#  postgres_data:
复制代码

 

posted @   看一百次夜空里的深蓝  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-09-10 Golang 初识: 函数调用与定义丶字符串处理丶Json的处理
点击右上角即可分享
微信分享提示