docker-compose 启动常见中间件:mysql、redis、minio、elasticsearch(单节点)、rabbitmq
version: "3.0"
services:
mysql:
image: mysql:5.7.39
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp --ignore-db-dir=lost+found
volumes:
- ./mysql/data/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime # 时间戳同步
ports:
- "3306:3306"
networks:
- minio
redis:
image: redis:7
container_name: redis
restart: always
volumes:
# - ./redis/datadir:/data
- ./redis/conf/redis.conf:/etc/redis/redis.conf
- /etc/localtime:/etc/localtime
# - ./redis/logs:/logs
command: ["redis-server","/etc/redis/redis.conf"]
ports:
- "6379:6379"
networks:
- minio
minio:
image: minio/minio:RELEASE.2022-04-16T04-26-02Z
container_name: minio
restart: always
command: server /data1 /data2 /data3 /data4 --console-address ":9001"
environment:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: admin123@u1t..P
logging:
driver: json-file
volumes:
- ./minio/data1:/data1
- ./minio/data2:/data2
- ./minio/data3:/data3
- ./minio/data4:/data4
- /etc/localtime:/etc/localtime
ports:
- "9000:9000"
- "9001:9001"
networks:
- minio
es-cluster01:
image: elasticsearch:7.7.0
container_name: elastic-cluster01
restart: always
environment:
- discovery.type=single-node
volumes:
- ./es/data:/usr/share/elasticsearch/data
- /etc/localtime:/etc/localtime
ports:
- "9200:9200"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- minio
rabbitmq:
image: rabbitmq:3.8.3-management
container_name: rabbitmq
restart: always
hostname: myRabbitmq
privileged: true
ports:
- "15672:15672"
- "5672:5672"
volumes:
- /var/lib/rabbitmq:/var/lib/rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=root
- RABBITMQ_DEFAULT_PASS=root
networks:
- minio
networks:
minio:
driver: bridge
注:rabbitmq的挂载路径,启动之后,生成的访问文件需要访问授权