version: '3' volumes: arl_db: external: true services: web: image: tophant/arl:${ARL_VERSION:-latest} container_name: arl_web restart: unless-stopped depends_on: - mongodb - rabbitmq ports: #http 服务,默认不映射出来 #- "5003:80" - "5003:443" volumes: - ./arl_web.log:/code/arl_web.log - ./config-docker.yaml:/code/app/config.yaml - ./image:/code/app/tmp_screenshot - ./poc:/opt/ARL-NPoC/xing/plugins/upload_poc entrypoint: ["sh", "-c", "gen_crt.sh; nginx; wait-for-it.sh mongodb:27017; wait-for-it.sh rabbitmq:5672; gunicorn -b 0.0.0.0:5003 app.main:arl_app -w 3 --access-logfile arl_web.log --access-logformat '%({x-real-ip}i)s %(l)s %(u)s %(t)s \"%(r)s\" %(s)s %(b)s \"%(f)s\" \"%(a)s\"'"] environment: - LANG=en_US.UTF-8 - TZ=Asia/Shanghai worker: image: tophant/arl:${ARL_VERSION:-latest} container_name: arl_worker restart: unless-stopped depends_on: - mongodb - rabbitmq volumes: - ./arl_worker.log:/code/arl_worker.log - ./config-docker.yaml:/code/app/config.yaml - ./image:/code/app/tmp_screenshot - ./poc:/opt/ARL-NPoC/xing/plugins/upload_poc entrypoint: ["sh", "-c", "wait-for-it.sh mongodb:27017; wait-for-it.sh rabbitmq:5672; celery -A app.celerytask.celery worker -l info -Q arlgithub -n arlgithub -c 2 -O fair -f arl_worker.log & celery -A app.celerytask.celery worker -l info -Q arltask -n arltask -c 2 -O fair -f arl_worker.log"] environment: - LANG=en_US.UTF-8 - TZ=Asia/Shanghai scheduler: image: tophant/arl:${ARL_VERSION:-latest} container_name: arl_scheduler restart: unless-stopped depends_on: - mongodb - rabbitmq volumes: - ./config-docker.yaml:/code/app/config.yaml entrypoint: [ "sh", "-c", "wait-for-it.sh mongodb:27017; wait-for-it.sh rabbitmq:5672; python3.6 -m app.scheduler" ] environment: - LANG=en_US.UTF-8 - TZ=Asia/Shanghai mongodb: image: mongo:4.0.27 container_name: arl_mongodb restart: always volumes: - arl_db:/data/db - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro environment: - MONGO_INITDB_DATABASE=arl - MONGO_INITDB_ROOT_USERNAME=admin - MONGO_INITDB_ROOT_PASSWORD=admin rabbitmq: image: rabbitmq:3.13.1-management-alpine container_name: arl_rabbitmq restart: always environment: - RABBITMQ_DEFAULT_PASS=arlpassword - RABBITMQ_DEFAULT_USER=arl - RABBITMQ_DEFAULT_VHOST=arlv2host logging: driver: "json-file" options: max-size: "1M" max-file: "10"