도커파일은 수정하지 않고, 쉘 스크립트 파일 만 수정했습니다. 자세한 건 PR에서 작성하겠습니다.
ec2 t2.micro의 cpu 컴퓨팅 능력과 메모리 능력이 딸리기 때문에, 인스턴스 내에서 yarn build(프론트 레포, 백은 잘 됌)는 인스턴스가 락이 걸려버립니다. 따라서 프론트 레포는 빌드를 로컬에서 하고 sftp로 빌드 파일을 옮기는 방식으로 해야 할 것 같습니다. sftp로 빌드파일을 옮기는 작업은 쉘 스크립트로 자동화 할수 있는지 확실한 부분이 아니라서, 기존의 원하던 높은 수준의 자동화는 힘들것 같습니다.
Dockerfile
현재 프론트 코드를 서버에서 배포하기 위해 build 된 파일을 서버에서 보내주고 있습니다. 문제는 해당 레포지토리의 도커파일은 해당 레포지토리의 소스코드만 복사하여 도커 컨테이너 내에 만듭니다. 따라서, index.js에서 ../../ 를 하더라도 프론트 코드(빌드파일)는 해당 경로에 없습니다. 도커 컨테이너 내에 복사된 소스코드는 서버 레포지토리 뿐입니다. https://github.com/Jandy-SeoulTech/Jandy_Web_Back/blob/8c7c7ae7d4c321b035dccc5c62768fb0686d0e58/Dockerfile#L3-L10
docker build -t upgle .
를 수행하면 현재 디렉토리(Jandy_Web_Back)에서 수행하기 때문에 해당 레포만 복사하게 됨.해결방법
차라리 프론트 빌드 파일을 서버의 루트 디렉토리에 sftp등으로 이전하고, 서버 인스턴스에 굳이 프론트 레포를 만들지 않는방법.
도커파일을 인스턴스 홈 디렉토리에 두고(혹은
docker build -t upgle ../.
), 도커파일 내용을 수정한다.어사인은 제가 작업하는 걸 기본으로 하고, @InHyeok-J 에게 작업 내역을 전달하도록 하겠습니다. 작업 진행상황 공유하겠음~!