- 배포 환경: AWS elastic beansstalk, docker
- npx create-react-app 으로 샘플 보일러플레이트 앱을 만든다.
- Dockerfile을 만든다.
FROM node:16
WORKDIR '/app'
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
#FROM nginx
#COPY --from=0 /app/build /usr/share/nginx/html
- github에 레포지토리를 만든다
- aws elastic beanstalk에 환경을 구축한다.
- github 마스터 브렌치에 푸시한다.
- github actions에 워크플로우를 세팅한다.
name: Deployment from github to AWS
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout latest rep
uses: actions/checkout@master
- name: Generate Delpoyment Package
run: zip -r deploy.zip * -x "**node_modules**"
- name: Deploy to EB
uses: einaregilsson/beanstalk-deploy@v16
with:
aws_access_key: ${{secrets.AWS_ACCESS_KEY_ID}}
aws_secret_key: ${{secrets.AWS_SECRET_ACCESS_KEY}}
application_name: simple-engineer-delpoyment-tutorial
environment_name: Simpleengineerdelpoymenttutorial-env
region: ap-northeast-1
version_label: "my-$"
deployment_package: deploy.zip
- github settings 에서 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY를 등록한다.
- 세팅을 완료한다.
- 코드를 마스터 브랜치에 푸시하면 CI/CD가 실행된다.