배포 기록 - boostcampwm-2022/web33-Mildo GitHub Wiki
🚩 구현 목표
- CI/CD 수정
- https 설정
🖥️ 구현 내용
환경 변수 변경
- 새로 늘어난 환경 변수를 모두 추가
- mongoDB의 URI는 쌍따옴표를 붙여서 생성
Working Directory 설정
- 쌍따옴표를 떼고 써야 내용물이 분리됨?!
- script_components를 설정해주면 됨?! → 이게 맞음!!
- 숫자를 입력하면 해당 숫자만큼 상위 컴포넌트 제거
🚧 Trouble Shooting
- /server/server → 계층이 하나 더 생겨서 제대로 파일이 실행되지 않는 문제 발생
- 해결책 1 → ‘**strip_component: 1’**을 이용해서 계층을 한단계 지움
폴더 통째로 복사되는 오류
- name: 클라이언트 빌드 폴더 복사
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
source: client/build
target: "/usr/share/nginx/html/"
/usr/share/nginx/html
폴더 아래에client/build
에 있는 파일이 복사될 줄 알았지만, 실제로는 복사된 파일 뿐만 아니라 폴더의 경로까지 통째로 복사해버려/usr/share/nginx/html/client/build
가 되었다.
- name: 클라이언트 빌드 폴더 복사
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
source: client/build
target: "/usr/share/nginx/html"
strip_components: 1
strip_components
속성을 넣어주어 해결
node_modules 복사
- 클라이언트, api서버, cron 서버 모두 build된 파일만을 원격 서버에 복사
- 클라이언트는 build 시 관련된 파일을 모두 import 하여 하나의 파일로 생성하지만 api 서버와 cron 서버는 build 시 타입스크립트 컴파일만 해주기 때문에 외부 라이브러리가 제대로 설치되어 있지 않음
- yarn
yarn 실행 오류
환경변수가 적용 안되는 이유
-
pm2로 실행 시 환경변수를 가져오지 못함
-
기존 코드
pm2 start web33-Mildo/server/dist/src/app.js
dotenv.config()
는 현재 실행시킨 디렉토리를 기준으로 path를 가져오는 듯 함- 그래서 만약 어떤 위치에서 실행시키건 간에 환경변수를 적용시키고 싶다면 dotenv.config() option의 path를 통해 지정해 줄 수 있음
-
변경 코드
cd web33-Mildo/server/dist pm2 start src/app.js
.env
가 위치한 디렉토리로 이동한 후 실행시킴- dotenv가 정확히 .env 파일이 어디에 있는지에 따라 적용되는지 알아보자