[NginX, Spring, React, MySQL] Docker 이용한 서버 배포(3) - Docker에 React 프로젝트 이미지 올리고 실행하기

Hyeseong Kim·2022년 8월 30일
1

서버배포

목록 보기
6/9

Frontend 도커 이미지 생성 & 실행

1. React 프로젝트 루트 디렉토리에 Dockerfile 생성

# nginx 이미지를 사용합니다. 뒤에 tag가 없으면 latest 를 사용.
FROM nginx

# root 에 app 폴더를 생성
RUN mkdir /app

# work dir 고정
WORKDIR /app

# work dir 에 build 폴더 생성 /app/build
RUN mkdir ./build

# host pc의 현재경로의 build 폴더를 workdir 의 build 폴더로 복사
ADD ./build ./build

# nginx 의 default.conf 를 삭제
RUN rm /etc/nginx/conf.d/default.conf

# host pc 의 nginx.conf 를 아래 경로에 복사
COPY ./nginx.conf /etc/nginx/conf.d

# 80 포트 오픈
EXPOSE 80

# container 실행 시 자동으로 실행할 command. nginx 시작함
CMD ["nginx", "-g", "daemon off;"]

2. React 프로젝트 루트 디렉토리에 nginx.conf 파일 생성

server {
    listen 80;
    location / {
        root    /app/build;
        index   index.html;
        try_files $uri $uri/ /index.html;
    }
}

직접적으로 도커에 띄우지 않고 젠킨스를 사용할 예정이라면 여기까지만 진행하고
👉여기👈로 이동해서 Backend 부분 이어서 진행하시면 됩니당^~^

3. npm 빌드

$ npm install
$ npm run build

4. 도커 이미지 생성

$ docker build -t nginx-react:0.1 .

-> nginx-react:0.1이라는 이름으로 도커 이미지 생성

5. 도커 컨테이너 실행

$ docker run --name nginx-react -d -p 3000:80 nginx-react:0.1

-> nginx-react라는 이름의 컨테이너를 호스트 포트 3000, 컨테이너 포트 80으로 실행

6. 잘 실행되었는지 확인

$ docker ps -a

Error : FROM java:8 manifest for java:8 not found: manifest unknown: manifest unknown
-> Dockerfile에서 FROM java:8 부분을 FROM openjdk:8로 변경

0개의 댓글