docker部署常用中间服务开发环境
networks:
env-network:
driver: bridge
services:
mysql:
image: mysql:8.0
container_name: mysql8
ports:
- "0.0.0.0:3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: mysql_demo
MYSQL_USER: haima
MYSQL_PASSWORD: 123456
volumes:
- ./mysql_data:/var/lib/mysql
- ./scripts/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
networks:
- env-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
start_period: 30s
kafka:
image: apache/kafka:latest
container_name: push_kafka
ports:
- "0.0.0.0:9092:9092"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://10.10.6.251:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
KAFKA_DELETE_TOPIC_ENABLE: 'true'
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_LOG_RETENTION_HOURS: 168
volumes:
- ./kafka_data:/var/lib/kafka/data
networks:
- env-network
healthcheck:
test: ["CMD-SHELL", "/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092 > /dev/null 2>&1"]
timeout: 10s
retries: 5
start_period: 30s
redis:
image: redis:7-alpine
container_name: push_redis
ports:
- "0.0.0.0:6379:6379"
volumes:
- ./redis_data:/data
command: redis-server --appendonly yes
networks:
- env-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
timeout: 10s
retries: 3
volumes:
mysql_data:
driver: local
redis_data:
driver: local
kafka_data:
driver: local