1. 도커파일 작성

multi-stage 빌드를 사용하여 프론트엔드 애플리케이션을 빌드하고 배포하는 과정 작

ARG APP_NAME=""

FROM node:18-slim AS builder
WORKDIR /tmp/workspace
ARG APP_NAME
ENV BASE_PATH="${APP_NAME}"

ADD component component
ADD console-app console-app
COPY package.json ./package.json
COPY yarn.lock ./yarn.lock
RUN yarn install
RUN yarn workspace console-app build
----  빌더스테이지('builder') ---- 스테이지에서는 프로젝트의 소스 코드를 추가하고 필요한 의존성 설치한 뒤 빌드를 실


FROM node:18-slim as deploy
WORKDIR /tmp/workspace
COPY --from=builder /tmp/workspace/component/src ./component/src
COPY --from=builder /tmp/workspace/component/public ./component/public
COPY --from=builder /tmp/workspace/component/package.json ./component/

COPY --from=builder /tmp/workspace/console-app/public ./console-app/public
COPY --from=builder /tmp/workspace/console-app/.next ./console-app/.next
COPY --from=builder \
/tmp/workspace/console-app/package.json \
/tmp/workspace/console-app/next.config.js \
/tmp/workspace/console-app/.env.* \
./console-app/

COPY --from=builder /tmp/workspace/package.json ./package.json
COPY --from=builder /tmp/workspace/yarn.lock ./yarn.lock
RUN yarn install --production
배포 스테이지 ('deploy')  서브모듈 컴포넌트왕 콘솔앱의 필요 파일 복사 필요한 의존성만 설치


FROM node:18-alpine AS runner
WORKDIR /var/run/sugarbricks
ARG APP_NAME
ENV NODE_ENV production
ENV BASE_PATH="${APP_NAME}"

#ENV NEXT_TELEMETRY_DISABLED 1

COPY --from=deploy /tmp/workspace/ ./

EXPOSE 3000

CMD ["yarn", "workspace", "console-app", "start"]
실행 스테이지 최종 실행 이미지 정의 애플리케이션 실행

 

.dockerignore 파일 생성 후 불필요한 디렉터리나 파일 제외 하기 위해 추가 한다.

도커 허브 가입 후 

 

도커 repository 생성

 

생성 후

 

도커파일이 있는 디렉터리에서 명령어 실행

docker build -t your-dockerhub-username/your-image-name:latest .

 

도커 cli 를 통해 허브 로그인

 

도커 허브에 푸시

docker push your-dockerhub-username/your-image-name:tag

 

 

docker run -d -p 8080:80 --name my-container -e "NODE_ENV=production" my-image:tag 

위에는 참고로 실행하는명령어 도커 로컬에서 실행 하면 된다.

'DevOps > docker' 카테고리의 다른 글

리눅스 서버 도커 컨테이너 실행  (0) 2025.02.13

+ Recent posts