해당 절차는 본인 프로젝트 기준으로 작성된것이며,
실제 작업 시 작업물에 따라 일부 절차가 다를 수 있음을 알립니다.










cd "방금 다운로드 받은 키페어 경로"yes 입력 sudo apt-get update
sudo apt-get install docker.io -y
sudo systemctl start docker
sudo docker run hello-world
sudo chmod 666 /var/run/docker.sock
docker ps
docker --version
ls -al //설치된 파일 확인 가능
front 파일에 새로운 파일 .github 생성
.github 파일 하위에 새로운 파일 workflows 생성
workflows 하위에 cicd.yml 생성
cicd.yml에 해당 코드 입력
name: CICD
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
- name: Create .env file
run: |
touch .env
echo "${{ secrets.REACT_APP_AUTH_CLIENT_ID }}" > .env
- name: Sign in to Docker Hub
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
- name: Build Docker Image
run: docker build -t 맨 처음에 생성 레지토리 이름 .
- name: Push Docker Image
run: docker push 맨 처음에 생성 레지토리 이름:latest
deploy:
needs: build
runs-on: aws-ec2
steps:
- name: Pull image from docker hub
run: docker pull 맨 처음에 생성 레지토리 이름:latest
- name: Delete existing container
run: docker rm -f reactContainer
- name: Run container
run: docker run -d -p 80:80 --name reactContainer 맨 처음에 생성 레지토리 이름
front 파일에 새로운 파일 Dockerfile 생성
Dockerfile 해당 코드 입력
#Build React App
FROM node:alpine3.18 as budockild
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
#Server Setting nginx
FROM nginx:1.23-alpine
WORKDIR /usr/share/nginx/html
RUN rm -rf *
COPY --from=build /app/build .
EXPOSE 80
ENTRYPOINT [ "6", "-g", "daemon off;" ]
내 프로젝트 파일과 연결된 원격 깃 repository에 진입
상단에 맨 우측에 있는 settings 클릭

secrets and variables 클릭 - actions 클릭

new repository secret 클릭

env 파일 하나씩 생성



aws-ec2 입력하고 enteraws-ec2 한번더 입력 엔터./run.sh 실행

cd actions-runner./run.sh