NextJS 배포하기 - NextJS, Travis Setup

NextJS 프로젝트 생성

$ npx create-next-app sample-next
$ cd sample-next
$ npm run dev 

Git Repository 추가

sample-next 폴더 내부에 위치한 상태로 아래 명령어를 입력해주셔야 합니다.

$ git init 
$ git add .
$ git commit -m "initial commit" 
$ git remote add origin <본인 repo 주소>
$ git push origin master

Travis CI

Travis CI: https://travis-ci.org/

Github 과 연동하여 우리가 좀전에 만들었던 프로젝트를 찾아주세요

아래 체크버튼을 클릭하여 활성화시켜주세요

프로젝트 내부 루트경로에 .travis.yml 파일을 추가해주세요

# .travis.yml

language: node_js
node_js:
  - '12'

services: # docker 로 감싸서 배포할거에요
  - docker

before_install: 
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
  - docker build -t sample-next -f Dockerfile .

branches: # 해당 브렌치로 push 될 경우에만 반응합니다
  only:
    - master

notifications: # 변경사항이 있을때 알림을 받을 수 있도록
  email:
    on_success: change
    on_failure: always
    recipients:
      - <본인 이메일>

Docker 로 감싸서 배포할 것 이기 때문에 Docker UserName/UserPassword 가 필요합니다.

여기 에서 가입해주세요

이 정보는 중요한 정보이기 때문에 Travis 의 환경변수를 이용해서 처리할거에요 아래의 Settings 버튼을 눌러 프로젝트 세팅 페이지로 이동해주세요

Env 탭에 DOCKER_USERNAME / DOCKER_USERPASSWORD 정보를 입력해주세요

이제 프로젝트 루트 경로에 Dockerfile 을 추가해주세요

# Dockerfile

FROM node:12 as base
WORKDIR /app

COPY package.json package-lock.json ./
RUN npm ci

ENV CONTINUOUS_INTEGRATION=1
ENV NODE_ENV=production

COPY . .
RUN npm run build

# next 의 default port 는 3000 번 이지만 beanstalk 의 default port 는 8081 이기 때문에
# 간편하게 맞추고자 8081 로 실행합니다.
EXPOSE 8081 
CMD [ "npm", "start" ]

여기까지 추가한 후 github 에 올리면 master 에 코드가 반영되기 때문에 travis 가 반응하고 우리가 설정해놓은 travis.yml 대로 처리되어집니다.

성공시 아래와 같은 화면을 볼 수 있습니다. 실패했다면 빨간색으로 표시됩니다.

Last updated