도커(Docker)를 이용한 그누보드5 로컬 개발환경 설정 > 그누보드5 팁자료실

그누보드5 팁자료실

도커(Docker)를 이용한 그누보드5 로컬 개발환경 설정 정보

도커(Docker)를 이용한 그누보드5 로컬 개발환경 설정

본문

지난번에 그누보드용 docker를 테스트하고 그 결과를 포스팅한적이 있습니다. (원래 목적은 laravel rest_api 개발환경을  구축이었습니다. 현재 laravel도 설정 완료하였습니다. 이건 다음 기회에...)

도커를 이용하여 개발환경을 구축할려는 이유는 https://sir.kr/cm_free/1538380  글에 잘 설명되어 있습니다.

 

Docker Hub 에서 APM이나 LNMP 적당히 다운받아 구축해도 되지만, 왠지 남이 만들어둔걸 이해도 못한채 쓰는게 마음에 들지 않았습니다.  

Docker 개발환경 구축에서 제가 생각한 요구사항은 다음과 같습니다.

  1. LNMP 환경(Linux + Nginx + MySQL + PHP-FPM) 
  2. 최소한의 Docker 파일들로 구성(파일수가 많은 laragon 등은 배제)
  3. PHPStorm 에서 프로젝트 단위로 clone 하여 사용 가능(phpstorm docker plugin연동)
  4. 프로젝트 별로 Git으로 관리 가능
  5. PHP소스 영역과 도커파일이 최대한 분리되어야함(별개의 docker 폴더로 나눔)
  6. nginx conf, php.ini 를 git에서 같이 관리
  7. PHP XDEBUG를 사용가능(이게 로컬 개발환경을 docker로 사용하는 가장 큰 이유)
  8. PHPStorm Xdebug 와 연동하여 Remote Debugging 가능
  9. 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별 설치는 구글링하세요.^^)

 

 

  1. Docker-lnmp git clone 
    1. git clone https://github.com/merong/docker_lnmp.git docker_gnuboard5
    2. $ cd docker_gnuboard5
    3. $ ls
  2. docker-compose.yml html  mount volumn 수정 (2군데)
    1. $  vi docker-compose.yml
      - ./app:/var/www/html/app → ./html:/var/www/html
  3. Php-fpm build 
    1. 빌드과정이 조금 오래 걸릴수 있습니다. Php-fpm 에서 필요한 라이브러리를 맞춰 다시 컴파일 하기 때문입니다. 특히 Xdebug
    2. docker-compose build fpm
  4. 빌드가 끝났으면, docker 를 실행해 봅니다.
    1. $ docker-compose up -d
    2. 브라우저로 localhost 접속해봅니다. html 폴더에  index 파일이 없음으로 404가 뜹니다. 
  5. html 폴더에 index.html 을 생성한후 브라우저에서 확인해 봅니다.
    1. $ echo echo 'work!!' > html/index.html        
  6. 이제 그누보드 설치합니다.  Github 에서 clone 해도 되고, 기존에 다운받은 소스를 복사해도 됩니다.
    1. 기존 html 폴더는 삭제
    2. $ rm -rf html
    3. $ git clone https://github.com/gnuboard/gnuboard5.git html
    4. $ mkdir html/data
    5. 브라우저에서 설치를 진행하면  데이타 폴더가 없다고 나옵니다. 생성합니다.
    6. 제 다시 진행하면 정상적으로 설치화면이 나옵니다. 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
  7. 이제 그누보드5 설치가 완료되었습니다.

 

설치 동영상

297211.svg


 

 

2826885174_1580563058.2828.png

 

2826885174_1580563080.6103.png

 

2826885174_1580563103.9731.png

 

2826885174_1580563120.5674.png

추천
3

댓글 4개

전체 30 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT