Author: Ju4t
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
version: "3.8"
services:
django:
build:
context: .
dockerfile: Dockerfile
# target: dev
command: python manage.py runserver 0.0.0.0:8000
ports:
- 8000:8000
volumes:
- ./:/app
networks:
- vlan100
env_file: .env
# environment:
# - PRODUCT=1
depends_on:
- mysql
- redis
- rabbitmq
restart: always
worker:
# deploy:
# replicas: 2
# update_config:
# parallelism: 2
# delay: 10s
# restart_policy:
# condition: on-failure
build:
context: .
dockerfile: Dockerfile
command: celery -A core worker -l info
volumes:
- ./:/app
networks:
- vlan100
env_file: .env
depends_on:
- mysql
- redis
- rabbitmq
restart: always
mysql:
image: "mysql"
container_name: "mysql"
environment:
MYSQL_ROOT_PASSWORD: "ROOT_PASSWORD"
# MYSQL_DATABASE: "dev"
# MYSQL_USER: "dev"
# MYSQL_PASS: "dev"
restart: always
networks:
- vlan100
ports:
- 3306:3306
volumes:
- /Volumes/DB/mysql:/var/lib/mysql
redis:
image: "redis:alpine"
container_name: "redis"
command: ["redis-server", "--appendonly", "yes"]
ports:
- 6379:6379
volumes:
- /Volumes/DB/redis:/data
networks:
- vlan100
rabbitmq:
image: "rabbitmq:management"
container_name: "rabbitmq"
ports:
- 5672:5672
- 15672:15672
networks:
- vlan100
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
elasticsearch:
image: elasticsearch:5.5.1
container_name: elasticsearch
restart: always
mem_limit: 2G
networks:
- vlan100
ports:
- 9200:9200
- 9300:9300
# volumes:
# - /Volumes/DB/elasticsearch/config/elasticsearch.yml:/work/elasticsearch-5.5.1/config/elasticsearch.yml
# - /Volumes/DB/elasticsearch:/work/elasticsearch-5.5.1/data
# - /Volumes/DB/elasticsearch:/work/elasticsearch-5.5.1/logs
networks:
vlan100:
driver: bridge
docker compose -f docker-compose.yaml up -d