Docker + Node.js + Nginx 2

2023. 12. 11. 01:22·BACK END

본격적으로 Visual Studio에서 Docker를 설치하고 개발 환경을 세팅 하겠습니다.

node js와 express 기본적으로 설치되어 있다는 가정하에 진행하겠습니다.

 

server.js 파일을 생성하여 다음과 같이 입력해줍니다.

const express = require('express')
const app = express()
const port = 3000;

app.get('/', (req, res) => {
  res.send('Docker with nodejs')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

 

VS Code를 사용하여 Docker extension을 설치해야 합니다.

 

Extension을 설치 했으면 root에 "Dockerfile"이라는 이름으로 새로운 파일을 하나 만들자.

Dockerfile에 다음과 같이 작성해 줍니다. Dockerfile은 Docker 이미지를 만드는 데 사용됩니다.

# 사용할 기본 이미지를 지정
# Alpine Linux의 Node.js 버전 14 Alpine Linux는 경량 배포판
FROM node:14-alpine

# DOCKERIZE_VERSION 모듈 설치
# docker-compose에서 docker 컨테이너 간의 실행 순서를 동기화
ENV DOCKERIZE_VERSION v0.2.0
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
    && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz

# nodemon 모듈 설치
RUN npm install -g nodemon
RUN mkdir -p /usr/src/app

# store_images_volume 폴더 생성
RUN mkdir /store_images_volume

# WORKDIR은 명령을 실행하기 위한 디렉토리를 설정합니다.
WORKDIR /usr/src/app

# root 폴더에 있는 package.json를 /usr/src/app 복제합니다
COPY package.json /usr/src/app
# root 폴더에 있는 package-lock.json를 /usr/src/app 복제합니다
COPY package-lock.json /usr/src/app
# package.json에 있는 module을 install합니다
RUN npm install

# root(.) directory 전체를 복제합니다.
COPY . /usr/src/app

RUN chmod +x docker-entrypoint.sh

# script를 실행합니다.
CMD ["./docker-entrypoint.sh"]

 

terminal에 docker image를 build 합니다
docker build . --tag docker_nodejs

build 후 docker container를 실행합니다.
docker run -p 3000:3000 docker_nodejs

nodejs 서버만 구동했을 때와 같이 서버가 실행됩니다.

'BACK END' 카테고리의 다른 글

Docker + Node.js + Nginx 4  (0) 2023.12.11
Docker + Node.js + Nginx 3  (0) 2023.12.11
Docker + Node.js + Nginx 1  (2) 2023.12.10
Node.js Multer  (2) 2023.12.10
HTTP multipart/form-data  (1) 2023.12.10
'BACK END' 카테고리의 다른 글
  • Docker + Node.js + Nginx 4
  • Docker + Node.js + Nginx 3
  • Docker + Node.js + Nginx 1
  • Node.js Multer
빨주노초홍명보
빨주노초홍명보
  • 빨주노초홍명보
    과거의 나를 통해 미래의 나를 성장시키자
    빨주노초홍명보
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • TEKHIT ANDROID SCHOOL (4)
      • Android Architecture (7)
      • Android (40)
      • PROJECT (5)
      • KOTLIN (10)
        • 코루틴의 정석 (3)
      • BACK END (12)
      • CS (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    saeled class enum class 차이
    ThrottleFirst
    kotlin array
    Clean Architecture
    sealed class
    kotlin interface vs abstract
    Room
    repository
    코틀린 코루틴의 정석
    Livedata
    DI
    flow
    STATEFLOW
    의존성 주입
    Throttle
    kotlin interface abstract 차이
    interface vs abstract
    kotlin 타입 소거
    android clean architecture
    kotlin abstract class
    value class
    Repository Pattern
    리사이클러뷰 풀
    orbit
    kotlin interface
    callbackflow
    MVI
    DataSource
    android Room
    sealed class vs enum class
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
빨주노초홍명보
Docker + Node.js + Nginx 2
상단으로

티스토리툴바