혼자 개발 & 테스트할 때, 로컬 MySQL, Redis, Kafka 서버를 구성하기란 너무 귀찮다!
처음엔 `brew services start mysql` 로 껐다 켰다... 🫠
Mac Apple Silicon (M1) 환경에서 Docker compose로 한 번에 구성할 수 있도록 기록하려고 한다
1. Docker 다운 & 실행
아래 URL에서 Mac with Apple Silicon 버전의 Docker Desktop을 다운받는다.
Docker Compose까지 포함되어있으니 이게 젤 쉬운 방법이라고 생각한다. 공식문서에서도 맞다구 한다..
The easiest and recommended way to get Docker Compose is to install Docker Desktop. Docker Desktop includes Docker Compose along with Docker Engine and Docker CLI which are Compose prerequisites.
https://docs.docker.com/desktop/install/mac-install/
Install Docker Desktop on Mac
Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.
docs.docker.com
2. docker-compose.yml 파일 생성
프로젝트 별로 리소스 구성이 달라질 수도 있을 것 같아 나는 개인 스프링 프로젝트 루트 하위에다가 생성했다.
version: '3'
services:
mysql:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=1234 # 루트계정
- MYSQL_DATABASE=test # 기본 DB
ports:
- "3306:3306"
volumes:
- ./my-db-init-scripts:/docker-entrypoint-initdb.d # (옵션) DB 스크립트
redis:
image: redis:latest
ports:
- "6379:6379"
environment:
- REDIS_HOST=localhost
- REDIS_PORT=6379
zookeeper:
image: zookeeper
container_name: zookeeper-server
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
platform: linux/amd64 # 맥실리콘
container_name: kafka-server
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
3. docker compose 실행
docker desktop에서 내 리소스들 (mysql, kafka&zookeeper, redis) 이 잘 실행되는지 확인한다.
docker compose up
4. 리소스 확인
4-1. MySQL
BASH를 통해 확인할 수도 있지만, 그냥 workbench나 Datagrip (or 인텔리제이) 쓰는 게 가장 편하다!
✅ 인텔리제이에서 접속
✅ BASH를 통해 접속
mysql -u root -p
4-2. Redis
마찬가지로 CLI를 사용하거나, Medis/RedisInsight 같은 프로그램을 사용하거나 그냥 인텔리제이에서 접속해도 된다.
✅ 인텔리제이에서 접속
4-3. Kafka
마찬가지로 가장 편한 방법인... 인텔리제이로 테스트하는 것을 추천한다.
인텔리제이 플러그인 중 'Kafka'를 설치한다.
✅ 플러그인 설치
✅ 접속
✅ 토픽 생성
✅ 토픽 프로듀싱
✅ 토픽 컨슈밍
끝! 참 쉽죠잉