[CloseSea] aws 배포 이슈

2022. 12. 28. 12:38·팀프로젝트/close_sea
728x90
반응형

aws에 도커를 통해 배포를 진행하려고 했다.

aws에서 도커허브에 올린 내 이미지를 받아와 npm start를 실행하도록 했지만

메모리가 부족하다는 오류가 뜨면서 실행되지 않았다.

오류에 대해 검색해보니 메모리를 올려주는 명령어를 추가하여 npm start를 하면 된다고 했지만 똑같은 오류가 발생했다.

 

문제는 근본적으로 내가 선택한 aws 인스턴스는 가장 작은 메모리를 사용하는 것이였기 때문이었다.

메모리가 부족했기 때문에 react를 빌드하여 실행시키는 방법을 생각했다.

이를 위해 Dockerfile을 새로 작성하고 이미지를 수정해야 했다.

 

기존 Dockerfile

FROM node:18

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD [ "npm","start" ]

바뀐 Dockerfile

# nginx 이미지를 사용합니다. 뒤에 tag가 없으면 latest 를 사용합니다.
FROM nginx

# root 에 app 폴더를 생성
RUN mkdir /app

# work dir 고정
WORKDIR /app

# work dir 에 build 폴더 생성 /app/build
RUN mkdir ./build

# host pc의 현재경로의 build 폴더를 workdir 의 build 폴더로 복사
ADD ./build ./build

# nginx 의 default.conf 를 삭제
RUN rm /etc/nginx/conf.d/default.conf

# host pc 의 nginx.conf 를 아래 경로에 복사
COPY ./nginx.conf /etc/nginx/conf.d

# 80 포트 오픈
EXPOSE 80

# container 실행 시 자동으로 실행할 command. nginx 시작함
CMD ["nginx", "-g", "daemon off;"]

./nginx.conf

server {
    listen 80;
    location / {
        root    /app/build;
        index   index.html;
        try_files $uri $uri/ /index.html;
    }
}

바꾼 Dockerfile로 이미지를 리빌드하고 다시 실행했더니 정상적으로 작동했다.

728x90
반응형

'팀프로젝트 > close_sea' 카테고리의 다른 글

[CloseSea] 최종 정리  (0) 2022.12.28
[CloseSea] ERC721 tokenURI 연결 이슈  (0) 2022.12.28
[CloseSea] NFT거래 권한 이슈  (0) 2022.12.28
[CloseSea] 지갑연결 버튼  (0) 2022.12.28
[CloseSea] 스마트 컨트랙트  (1) 2022.12.27
'팀프로젝트/close_sea' 카테고리의 다른 글
  • [CloseSea] 최종 정리
  • [CloseSea] ERC721 tokenURI 연결 이슈
  • [CloseSea] NFT거래 권한 이슈
  • [CloseSea] 지갑연결 버튼
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    erc20
    ERC721
    React
    js
    블록체인
    nodejs
    도커
    go
    하이퍼레저
    CSS
    node.js
    프로그래머스
    30일챌린지
    mysql
    30일 챌린지
    html
    컨테이너
    go언어
    node
    명령어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[CloseSea] aws 배포 이슈
상단으로

티스토리툴바