코드 작업이 끝나면 배포을 하여 세상에 나의 코드를 적용시키는 과정을 거쳐야 한다. 그런데 이 과정이 상당히 까다롭다. 배포시 고려해야할 사항이 많기 때문이다.
먼저 시작하기 문서(https://laravel.kr/docs/9.x/installation)를 통해 라라벨 프로젝트를 시작하면 다음과 같은 구조의 파일이 나온다.
curl -s https://laravel.build/example-app | bash
자, 그리고 gitignore에는 이렇게 되어있다.
저장소에는 vendor와 .env를 제외하라고 되어있다. 그 말은 배포서버에서 컴포저 인스톨을 해야 한다는거고 node_modules도 마찬가지이다. 배포 과정에 이것들이 포함되어 있어야 한다는 거다.
필요한건 node, php-fpm, nginx 이 세 가지이다. 설치하고나서 기다리고 있는건 권한문제가 있다. 만약 nginx와 php-fpm을 잘 설치했다면 nginx user는 nginx로 되어있을거고 php-fpm 유저는 www-data로 되어있을거다.
이 두 서비스의 user를 하나로 만들어야 권한문제가 발생하지 않는다. 배포한 소스도 user를 맞추자.
내경우엔 여러 복잡한 사정이 더 포함되어있어 서버에서 해당 서비스를 도커로 진행해야하기에 젠킨스 배포과정이 더 복잡해져서 시간을 많이 잡아먹었다.
오늘은 여기까지.