pebblepark
개발계발
pebblepark
전체 방문자
오늘
어제
  • 분류 전체보기 (24)
    • Frontend (7)
    • Backend (7)
    • 인프라 (1)
    • CS (0)
      • Design Pattern (0)
    • 정리용 (9)
    • 회고 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스프링 빈
  • springboot
  • typescript
  • spring
  • hoisting
  • Docker
  • React Query
  • debounce
  • github
  • 무한스크롤
  • 호이스팅
  • useLayoutEffect
  • SpringMVC
  • CORS
  • react-query
  • Context API
  • @ModelAttribute
  • redux
  • TDZ
  • javascript
  • vite
  • Git
  • 스프링 의존관계
  • ERR_UNSAFE_PORT
  • Github Pages
  • 스프링
  • 스프링 컨테이너
  • wsl
  • 리액트쿼리
  • react

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pebblepark

개발계발

AWS EC2에 Vite 애플리케이션 Docker로 배포하기
정리용

AWS EC2에 Vite 애플리케이션 Docker로 배포하기

2022. 5. 12. 09:21

 

🔎 Vite 애플리케이션 설정

  • vite의 이미지 폴더 경로: /public/assets/img

vite.config.ts

  • base: dist 폴더에 생성된 index.html 에서 참조하는 파일 경로 ./ 로 세팅
    • https://vitejs.dev/config/#base
  • assetsInclude: dist 폴더 생성시 .jpg 포함되도록 추가
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

// https://vitejs.dev/config/
export default defineConfig({
  base: './',
  plugins: [react()],
  assetsInclude: ['**/*.jpg'], 
});

 

vite 애플리케이션 빌드

  • dist 폴더 생성(배포용 폴더)
$ npm run build



🔎 Docker 배포 준비

Docker 이미지 준비

  • DockerFile
  • nginx 이미지 통해서 dist/index.html 을 80포트로 연결해줌
# nginx 이미지를 사용합니다. 뒤에 tag가 없으면 latest 를 사용합니다.
FROM nginx:latest

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

# work dir 고정
WORKDIR /app

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

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

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

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

# 80 포트 오픈
EXPOSE 80

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

 

nginx 설정 파일

  • default.conf
server {
    #add_header Access-Control-Allow-Origin *;
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root    /app/dist;
        index   index.html;
        try_files $uri $uri/ /index.html;
    }
}



🔎 Docker 배포

Docker Image 생성

  • -f : 도커파일 path
  • -t : 도커 이미지 이름:태그 (태그 안붙이면 latest)
$ docker build -f DockerFile -t sample .

 

Docker Container 실행

  • -d : 백그라운드로 실행
  • -p : 포트포워딩 설정
  • --name : 컨테이너 이름 설정
$ docker run -d -p 80:80 --name sample sample

 

Docker Container 내부 접속

$ docker exec -it sample /bin/bash

 

 

 

저작자표시 (새창열림)

'정리용' 카테고리의 다른 글

크롬에서 막혀있는 포트  (0) 2022.07.01
Proxy 서버로 CORS 해결하기  (0) 2022.06.24
Docker 명령어 정리  (0) 2022.05.25
Github pages 배포하기  (0) 2022.05.19
Github 특정 파일 커밋 기록 삭제  (0) 2022.05.17
    '정리용' 카테고리의 다른 글
    • Proxy 서버로 CORS 해결하기
    • Docker 명령어 정리
    • Github pages 배포하기
    • Github 특정 파일 커밋 기록 삭제
    pebblepark
    pebblepark
    프론트엔드 개발자입니다. 피드백은 언제나 환영입니다:)

    티스토리툴바