DABOM 프로젝트의 인프라 서비스(MySQL, Redis, Kafka)를 Docker Compose로 관리하는 저장소.
| 서비스 | 이미지 | 컨테이너명 | 기본 포트 | 용도 |
|---|---|---|---|---|
| MySQL | mysql:8.0 |
dabom-mysql | 3306 | 관계형 데이터베이스 |
| Redis | redis:7-alpine |
dabom-redis | 6379 | 캐시/세션 저장소 |
| Kafka | apache/kafka:3.8.1 |
dabom-kafka | 9092 | 메시지 브로커 (KRaft 모드) |
Kafka는 Zookeeper 없이 KRaft 모드로 동작한다.
- Docker 및 Docker Compose 설치
.env.example을 복사하여 .env 파일을 생성한다.
cp .env.example .env| 변수 | 기본값 | 설명 |
|---|---|---|
BIND_ADDRESS |
0.0.0.0 |
바인드 주소 (127.0.0.1로 변경 시 로컬만 허용) |
MYSQL_PORT |
3306 |
MySQL 포트 |
MYSQL_ROOT_PASSWORD |
root |
MySQL root 비밀번호 |
MYSQL_DATABASE |
dabom |
기본 생성 데이터베이스 |
MYSQL_USER |
dabom |
MySQL 사용자 |
MYSQL_PASSWORD |
dabom |
MySQL 사용자 비밀번호 |
REDIS_PORT |
6379 |
Redis 포트 |
REDIS_PASSWORD |
redis |
Redis 비밀번호 |
KAFKA_PORT |
9092 |
Kafka 포트 |
KAFKA_CLUSTER_ID |
dabom-kafka-cluster-001 |
Kafka 클러스터 ID |
KAFKA_ADVERTISED_HOST |
localhost |
Kafka advertised 호스트 |
docker compose up -d서비스 이름을 지정하면 해당 서비스만 실행된다.
# MySQL만
docker compose up -d mysql
# Redis만
docker compose up -d redis
# Kafka만
docker compose up -d kafka
# MySQL + Redis (Kafka 제외)
docker compose up -d mysql redis
# MySQL + Kafka (Redis 제외)
docker compose up -d mysql kafka# 전체 종료
docker compose down
# 특정 서비스만 종료
docker compose stop mysql
docker compose stop redis
docker compose stop kafka# 전체 종료 + 볼륨 삭제 (데이터 초기화)
docker compose down -v# 실행 중인 서비스 확인
docker compose ps
# 로그 확인
docker compose logs -f # 전체
docker compose logs -f mysql # MySQL만
docker compose logs -f redis # Redis만
docker compose logs -f kafka # Kafka만mysql -h 127.0.0.1 -P 3306 -u dabom -pdabom dabomredis-cli -h 127.0.0.1 -p 6379 -a redis# 토픽 목록 조회
docker exec dabom-kafka /opt/kafka/bin/kafka-topics.sh \
--bootstrap-server localhost:9092 --list
# 토픽 생성
docker exec dabom-kafka /opt/kafka/bin/kafka-topics.sh \
--bootstrap-server localhost:9092 --create --topic my-topic
# 메시지 발행
docker exec -it dabom-kafka /opt/kafka/bin/kafka-console-producer.sh \
--bootstrap-server localhost:9092 --topic my-topic
# 메시지 소비
docker exec -it dabom-kafka /opt/kafka/bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 --topic my-topic --from-beginning