Dockerfile
#Dockerfile
FROM node:18-alpine as build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:stable-alpine
COPY --from=build /app/dist /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
node:18-alpine 버전 설치
작업디렉터리를 /app으로 설정
package*.json파일을 복사
패키지 파일을 바탕으로 npm install 을 실행하여 모듈 설치
copy 로 파일 전체 복사
npm run build 로 리액트 프로젝트 빌드
nginx:stable-alpine 설치
위쪽 작업 결과를 --from=build 로 가져와서 쓸 수 있다.
빌드 결과물인 /app/dist를 nginx안에 있는 /usr/share/nginx/html으로 복사
충돌방지를 위해 기존 default.conf 파일 삭제
커스텀으로 만든 nginx.conf 를 nginx 안으로 복사
------------------------
nginx.conf 파일
server {
listen 80;
server_name localhost
# access_log /var/log/nginx/access.log;
# error_log /var/log/nginx/error.log;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
'IT > 도커' 카테고리의 다른 글
10. 네트워킹 (0) | 2023.01.27 |
---|---|
9. 도커 엔진, cgroups (0) | 2023.01.25 |
8. docker registry (0) | 2023.01.25 |
7. docker compose (0) | 2023.01.25 |
6. CMD vs ENTRYPOINT (0) | 2023.01.22 |