Skip to content

Commit fefa32d

Browse files
committed
test1
1 parent f3e45cd commit fefa32d

File tree

2 files changed

+25
-55
lines changed

2 files changed

+25
-55
lines changed

.github/workflows/deploy.yml

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,23 @@
1-
name: Docker Publish # 워크플로우의 이름
1+
name: Docker Publish
22

33
on:
44
push:
55
branches:
6-
- minseonjae # 또는 메인 브랜치 이름
7-
workflow_dispatch: # 수동 트리거 허용
6+
- minseonjae # main 브랜치에 푸시할 때 이 워크플로우를 트리거합니다.
87

98
jobs:
10-
build-and-push: # 작업 이름
11-
runs-on: ubuntu-latest # Ubuntu 환경에서 실행
9+
build-and-push:
10+
runs-on: ubuntu-latest
1211
steps:
13-
- uses: actions/checkout@v4 # 코드 체크아웃
14-
- name: Docker Buildx 설정 # Docker Buildx 설정
15-
uses: docker/setup-buildx-action@v3
16-
- name: Docker Hub에 로그인 # Docker Hub에 로그인
17-
uses: docker/login-action@v3
18-
with:
19-
username: ${{ secrets.DOCKER_USERNAME }} # GitHub Secrets에서 사용자 이름 가져오기
20-
password: ${{ secrets.DOCKER_PASSWORD }} # GitHub Secrets에서 비밀번호 가져오기
21-
- name: Docker 이미지 빌드 및 푸시 # Docker 이미지 빌드 및 푸시
22-
uses: docker/build-push-action@v5
12+
- uses: actions/checkout@v3
13+
- name: Docker 이미지 빌드
14+
run: docker build -t practic-app:latest . # "practic-app"을 이미지 이름으로 변경하세요.
15+
16+
- name: Docker Hub에 로그인
17+
uses: docker/login-action@v2
2318
with:
24-
context: . # Dockerfile이 있는 디렉토리
25-
push: true # 이미지를 Docker Hub에 푸시
26-
tags: |
27-
your-docker-username/practice:latest
28-
your-docker-username/practice:${{ github.sha }}
19+
username: ${{ secrets.DOCKERHUB_USERNAME }} # Docker Hub 사용자 이름을 위한 GitHub secret
20+
password: ${{ secrets.DOCKERHUB_PASSWORD }} # Docker Hub 비밀번호를 위한 GitHub secret
21+
22+
- name: Docker 이미지 푸시
23+
run: docker push practic-app:latest # "practic-app"을 이미지 이름으로 변경하세요.

dockerfile

Lines changed: 10 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,20 @@
1-
# 베이스 이미지로 Node.js 런타임 사용
2-
FROM node:18-alpine AS base
1+
# 베이스 이미지로 공식 Node.js 런타임을 사용합니다.
2+
FROM node:18-alpine
33

4-
# 컨테이너 안에서 작업 디렉토리 설정
4+
# 컨테이너에 작업 디렉토리를 설정합니다.
55
WORKDIR /app
66

7-
# package.json 및 package-lock.json (또는 yarn.lock) 복사
7+
# package.json 및 package-lock.json을 작업 디렉토리에 복사합니다.
88
COPY package*.json ./
99

10-
# 의존성 설치
11-
RUN npm install --frozen-lockfile
12-
# yarn을 사용하는 경우, 다음으로 대체:
13-
# RUN yarn install --frozen-lockfile
10+
# 종속성을 설치합니다.
11+
RUN npm install
1412

15-
# 애플리케이션 코드 전체 복사
13+
# 애플리케이션 코드의 나머지 부분을 복사합니다.
1614
COPY . .
1715

18-
# Next.js 애플리케이션을 프로덕션용으로 빌드
19-
RUN npm run build
20-
21-
# ---
22-
# 프로덕션 이미지 (더 작고 최적화됨)
23-
# ---
24-
FROM node:18-alpine AS prod
25-
26-
# 작업 디렉토리 설정
27-
WORKDIR /app
28-
29-
# 빌드 단계에서 필요한 파일만 복사
30-
COPY --from=base /app/.next ./.next
31-
COPY --from=base /app/public ./public
32-
COPY --from=base /app/package*.json ./
33-
34-
# 프로덕션 의존성만 설치
35-
RUN npm install --omit=dev --frozen-lockfile
36-
# 또는 yarn:
37-
# RUN yarn install --omit=dev --frozen-lockfile
38-
39-
# Next.js가 사용하는 포트 공개 (기본값 3000)
16+
# Next.js가 사용하는 포트(기본값: 3000)를 노출합니다.
4017
EXPOSE 3000
4118

42-
# Next.js 프로덕션 서버 시작
43-
CMD ["npm", "start"]
44-
# 또는 yarn:
45-
# CMD ["yarn", "start"]
19+
# Next.js 애플리케이션을 실행하는 명령입니다.
20+
CMD ["npm", "start"]

0 commit comments

Comments
 (0)