SW/Kubernetes, Docker

Laravel 개발환경 Docker로 만들기 - MySQL 연동까지 쉽게 따라하는 방법

얇은생각 2025. 9. 27. 07:30
반응형

Laravel + MySQL + Docker, 진짜 써보니까 이렇더라: 초보 개발자의 현실 체험기

Laravel 프로젝트를 Docker랑 MySQL, Composer까지 다 묶어서 한 번에 세팅하려고 하니까... 진심 머리 하얘지더라고요. 뭐부터 해야 할지 모르겠고, 블로그 글들은 다 너무 딱딱하고 어렵고. 그래서 제가 직접 해보면서 느낀 점들, 어떻게 하면 좀 더 편하게 시작할 수 있을지 솔직하게 풀어볼게요.

같이 천천히, 단계별로 따라가봐요:

  • MySQL 컨테이너 만들기
  • Composer 컨테이너로 Laravel 설치하기
  • Docker 네트워크로 서비스 연결하기

 


 

왜 굳이 Docker를 쓰냐고요?

처음엔 그냥 로컬에 다 설치해서 하면 안 되나 싶었는데, 딱 한 번 Docker 써보고 나니까 이제는 이거 없으면 못 해요. 개발 환경도 깔끔하고, 버전 충돌 걱정 없고, 나중에 팀원한테 그대로 넘기기도 편하니까요. 특히 Laravel이랑 MySQL은 container로 나눠서 쓰는 게 정신 건강에 좋아요. 진심입니다.

 


 

Step 1: MySQL 컨테이너부터 만들어봐요

 

Step 1: MySQL 컨테이너부터 만들어봐요

Docker Hub에 있는 MySQL 공식 이미지를 씁니다. Laravel이랑 잘 어울리는 5.7 버전으로요. 괜히 최신 썼다가 호환성 문제 생기면 귀찮으니까요.

 

docker-compose.yml에 이거 넣어주세요:

db:
  image: mysql:5.7
  env_file:
    - ./env/mysql.env
  volumes:
    - db_data:/var/lib/mysql
  container_name: mysql_container

 

.env 파일도 하나 만들어야 해요

env/mysql.env 파일 만들고 이렇게 적어주세요:

MYSQL_DATABASE=homestead
MYSQL_USER=homestead
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=secret

 

Laravel이 이 정보를 보고 DB랑 연결하니까, 꼭 필요한 부분이에요. 처음엔 막 뭔 소린가 싶지만, 막상 해보면 "아 이거 DB 세팅값이구나" 감이 와요.

 

네트워크요? 신경 안 써도 돼요

Compose가 자동으로 컨테이너끼리 연결해줘요. Laravel에서 MySQL 접근할 때 그냥 db라고만 쓰면 끝나요. 진짜 간단해서 놀랐어요.

 


 

Step 2: Composer 컨테이너로 Laravel 깔기

 

Step 2: Composer 컨테이너로 Laravel 깔기

Laravel 설치할 때 Composer가 필수잖아요. 그래서 Composer만을 위한 전용 컨테이너 하나 만들면 나중에 의존성 설치할 때도 재활용할 수 있어서 좋아요. 처음엔 살짝 귀찮아도 장기적으로 편합니다.

 

Dockerfile 작성부터

dockerfiles/composer.Dockerfile 파일 하나 만들고 이렇게 적습니다:

FROM composer:latest

WORKDIR /var/www/html

ENTRYPOINT ["composer", "--ignore-platform-reqs"]

 

Composer는 최신 버전으로 쓰고, Laravel이 들어갈 경로인 /var/www/html을 작업 디렉토리로 잡아줘요. 그리고 플랫폼 관련 에러 무시하게 설정해두면 나중에 꼬이는 일 줄일 수 있어요.

 

docker-compose.yml에 Composer 추가하기

composer:
  build:
    context: ./dockerfiles
    dockerfile: composer.Dockerfile
  volumes:
    - ./src:/var/www/html
  container_name: composer_container

 

이제 로컬의 src/ 폴더가 컨테이너 안이랑 연결돼요. 설치된 Laravel 코드가 바로 내 컴퓨터에서도 보여서 관리하기 편하죠.

 

Laravel 설치는 이렇게

 

Laravel 설치는 이렇게

터미널에 아래 명령어 입력:

docker compose run --rm composer create-project laravel/laravel .

 

이러면 src/ 폴더에 Laravel 프로젝트가 딱 깔려요. 디렉토리 구조도 자동으로 잡혀 있고, 처음 딱 보면 뭔가 대단한 걸 해낸 느낌 납니다.

 


 

지금까지 해본 걸 한눈에 정리하면:

  • MySQL container: 세팅 완료
  • Composer container: Laravel 설치에 성공
  • 공유 volume: Laravel 소스코드가 잘 들어가 있음

이제 진짜 기초 환경은 다 갖춘 거예요. 여기까지 오면 반은 끝난 거라고 봐요.

 


 

이제 뭐 해야 하냐고요?

Laravel 실제로 돌려보려면 이제 PHP-FPM이랑 Nginx도 필요하죠. 이건 다음 글에서 자세히 풀어볼게요. 지금은 src/ 폴더 살펴보면서 .env 수정해보거나, artisan 명령어 한번 실행해보면서 조금 익숙해지는 시간 가져보세요.

 


 

진짜 솔직한 후기

이거 처음 할 땐 진짜 너무 복잡해 보여서 몇 번이나 하다가 포기할 뻔했어요. 근데 한 번만 제대로 해보면 "어? 이거 생각보다 괜찮은데?" 싶어져요. 컨테이너 간 연결도 너무 매끄럽고, 나중에 프로젝트 공유하거나 팀 작업할 때도 이 구조 하나면 다 해결돼요.

이제 개발 환경 세팅 때문에 스트레스 받을 일은 없을 거예요. 이제 진짜 Laravel로 재밌는 거 만들어볼 일만 남았네요. 저도 그렇게 시작했어요. 응원할게요!

반응형