FrontendMar 30, 20221 min readUpdated Sep 21, 2023

Docker로 React 프로젝트 컨테이너 만들기

# 노드 이미지를 최신 버전으로 가져옴 FROM node:latest as build

스크린샷 2022-04-03 00.21.16.png

Author

Younggun Park

Frontend engineer and builder · Seoul, South Korea

I'm building Vision AI products at P2ACH AI, writing about frontend systems, AI tooling, and the quiet parts of shipping.

TL;DR

# 노드 이미지를 최신 버전으로 가져옴 FROM node:latest as build

On this page

0. 도커가 무엇인가?

도커(Docker)는 컨테이너 기반의 가상화 플랫폼으로, 애플리케이션을 더 쉽고 효율적으로 개발, 배포, 실행할 수 있도록 도와줍니다. 도커로 작성된 컨테이너는 격리된 환경에서 애플리케이션을 실행하며, 호스트 환경에 구애받지 않고 서버를 안정적으로 실행할 수 있습니다.

도커에 대해 더 알고싶다면 이 글을 추천합니다.

0.1. 도커 설치

도커를 설치하기 위해서는 공식 도커 웹사이트에서 다운로드 받으실 수 있습니다. 아래 링크에서 운영체제에 맞는 버전을 선택하시면 됩니다.

https://www.docker.com/get-started

1. 개발용 도커파일

Dockerfile을 루트 폴더에 작성

Shell

# 노드 이미지를 최신 버전으로 가져옴
FROM node:latest as build

# working directory 지정
WORKDIR /app

# dependency 설치 
COPY . .
RUN yarn install
# 실제 환경 배포시 yarn build를 사용한다. 오늘 작성중인 Dockerfile은 개발용으로 작성되었다. (로컬 파일을 컨테이너화 한것과 동일함)

# 앱 실행
CMD ["yarn", "start"]

그냥 도커라는 컨테이너를 node 기반으로 만들고 프로젝트를 복-붙 해서 명령어를 실행시킨다는 이야기이다.

2. Docker 이미지 생성 및 실행

2.1. 커맨드 라인으로 빌드

Shell

# example-fe라는 이름으로 도커 이미지 빌드
docker build -t example-fe .

# 도커 이미지 실행 (3000포트로), 만약 실행중인 도커 컨테이너가 있다면 중지 후 다시 시작
docker run -v ${PWD}:/app -p 3000:3000 --rm example-fe

2.2.(Option) Docker Compose 작성 및 실행 (루트에 docker-compose.yml 생성)

도커 컴포즈는 여러 개의 컨테이너를 효율적으로 관리하기 위한 도구입니다. 도커 컴포즈를 사용하면 여러 개의 컨테이너를 쉽게 실행하고 관리할 수 있습니다. 도커 컴포즈를 설치하려면 아래 링크를 참고하세요.

https://docs.docker.com/compose/install/

YAML

version: "3.7"

services:
  example:
    container_name: example-fe
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ".:/app"
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development

Shell

# 커맨드라인에서
docker-compose up -d --build

FAQ

Common follow-up questions

이 글의 핵심은 무엇인가요?
# 노드 이미지를 최신 버전으로 가져옴 FROM node:latest as build
실무적으로 먼저 볼 포인트는 무엇인가요?
도커(Docker)는 컨테이너 기반의 가상화 플랫폼으로, 애플리케이션을 더 쉽고 효율적으로 개발, 배포, 실행할 수 있도록 도와줍니다. 도커로 작성된 컨테이너는 격리된 환경에서 애플리케이션을 실행하며, 호스트 환경에 구애받지 않고 서버를 안정적으로 실행할 수 있습니다.

Tags

DockerReactCICD

Related posts

View all writing