도커(Docker)를 이용한 그누보드5 로컬 개발환경 설정 정보
도커(Docker)를 이용한 그누보드5 로컬 개발환경 설정관련링크
본문
지난번에 그누보드용 docker를 테스트하고 그 결과를 포스팅한적이 있습니다. (원래 목적은 laravel rest_api 개발환경을 구축이었습니다. 현재 laravel도 설정 완료하였습니다. 이건 다음 기회에...)
도커를 이용하여 개발환경을 구축할려는 이유는 https://sir.kr/cm_free/1538380 글에 잘 설명되어 있습니다.
Docker Hub 에서 APM이나 LNMP 적당히 다운받아 구축해도 되지만, 왠지 남이 만들어둔걸 이해도 못한채 쓰는게 마음에 들지 않았습니다.
Docker 개발환경 구축에서 제가 생각한 요구사항은 다음과 같습니다.
- LNMP 환경(Linux + Nginx + MySQL + PHP-FPM)
- 최소한의 Docker 파일들로 구성(파일수가 많은 laragon 등은 배제)
- PHPStorm 에서 프로젝트 단위로 clone 하여 사용 가능(phpstorm docker plugin연동)
- 프로젝트 별로 Git으로 관리 가능
- PHP소스 영역과 도커파일이 최대한 분리되어야함(별개의 docker 폴더로 나눔)
- nginx conf, php.ini 를 git에서 같이 관리
- PHP XDEBUG를 사용가능(이게 로컬 개발환경을 docker로 사용하는 가장 큰 이유)
- PHPStorm Xdebug 와 연동하여 Remote Debugging 가능
- Mysql 데이타 영역은 volumn으로 mount
(추후 개발용 mysql 데이타를 dump하고 restore 하는 스크립트 추가)
이런 요구사항을 모두 만족할때까지 docker-composer.yml을 수정하면서 테스트를 하였습니다.
테스트하면서 생긴 고민중 하나는 그누보드와 최근 php의 디렉토리 구성이 다르다는것입니다.
그누보드는 그냥 html 폴더에 모든 파일을 저장한다면, Modern PHP 프레임웍들은 app/ 폴더나 src/ 폴더에 php 소스를 저장하고, public/ asset/ 등의 폴더에 static 파일을 분리하는 방식입니다.
그누보드나 일부 고전 방식의 php에서는 docker-compose.yml 을 수정해야 합니다.
docker-compose.yml에서 volumn 부분을 아래와 같이 수정합니다. 수정할 부분은 web 과 fpm 두군데 입니다. (파일내 위치는 첨부된 동영상을 참고하세요.)
수정전 ./html:/var/www/html → 수정후 ./html:/var/www/html
* 설치 순서
운영환경에 docker desktop 또는 docker service 를 설치합니다. 저는 macos를 사용하여 설치하였습니다. (OS별 설치는 구글링하세요.^^)
- Docker-lnmp git clone
- git clone https://github.com/merong/docker_lnmp.git docker_gnuboard5
- $ cd docker_gnuboard5
- $ ls
- docker-compose.yml html mount volumn 수정 (2군데)
- $ vi docker-compose.yml
- ./app:/var/www/html/app → ./html:/var/www/html
- $ vi docker-compose.yml
- Php-fpm build
- 빌드과정이 조금 오래 걸릴수 있습니다. Php-fpm 에서 필요한 라이브러리를 맞춰 다시 컴파일 하기 때문입니다. 특히 Xdebug
- docker-compose build fpm
- 빌드가 끝났으면, docker 를 실행해 봅니다.
- $ docker-compose up -d
- 브라우저로 localhost 접속해봅니다. html 폴더에 index 파일이 없음으로 404가 뜹니다.
- html 폴더에 index.html 을 생성한후 브라우저에서 확인해 봅니다.
- $ echo echo 'work!!' > html/index.html
- 이제 그누보드 설치합니다. Github 에서 clone 해도 되고, 기존에 다운받은 소스를 복사해도 됩니다.
- 기존 html 폴더는 삭제
- $ rm -rf html
- $ git clone https://github.com/gnuboard/gnuboard5.git html
- $ mkdir html/data
- 브라우저에서 설치를 진행하면 데이타 폴더가 없다고 나옵니다. 생성합니다.
- 제 다시 진행하면 정상적으로 설치화면이 나옵니다. docker-compose.yml에서 mysql-5.7 에 설정된 정보를 입력하시면 됩니다. user : dev, pass : dev, dbname : dev 입니다. 여기서 중요한 부분은 Host 입니다. localhost 를 입력하시면 db접속이 되지 않아 오류가 발생합니다. mysql 을 입력해야 정상 설치됩니다. 이 부분은 docker-compse.yml 의 link랑 상관이 있습니다. link 에 mysql이란 호스트정보가 자동 입력되어 있습니다. 더 자세히 알고 싶으신분은 docker network 을 공부하시면 됩니다. 링크 참조 https://sir.kr/cm_free/1540355
- 이제 그누보드5 설치가 완료되었습니다.
설치 동영상
3