(이 강의에서 활성화 버튼을 클릭하는 과정이 나온다. 하지만 현재는 Tracis CI는 활성화 버튼이 없어지고 plan만 가입 한다면 알아서 CI가 실행된다.)
테스트 실행 전, 도커 파일을 이용해 이미지를 생성해주도록 한다.
sudo: required #sudo 권한
language: generic #언어 플랫폼 선택
services: #도커 환경 구성
- docker
before_install: #docker run 실행 전 이미지 생성
- echo "start Creating an image with dockerfile"
- docker build -t jimin3263/docker-compose-practice -f Dockerfile.dev .
script: #실행할 스크립트
- docker run -e CI=true jimin3263/docker-composer-practice npm run test -- --coverage
after_success: #테스트 성공 후 할 일
- echo "Test Success"
--coverage
: 테스트를 상세하게 보도록 해준다.-f Dockerfile.dev .
: docker file 이름 명시이때, 두 가지의 오류가 발생했었다.
(1) 단순 오타
docker: Error response from daemon: pull access denied for jym3263/docker-composer-practice, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
docker가 실행되고 있지 않는 경우이거나, login을 해주지 않아서 발생하는 문제인 줄 알았으나.. 도커 이미지에 대한 오타때문에 난 오류였다. 🤦🏻♀️
(2) learn react 문구
변경 테스트 2 로 되어있던 부분을 바꾸도록 하면 된다.
성공 !
: EC2 인스턴스나 DB 같이 많은 것들을 포함한 환경을 구성하며 만들고 있는 소프트웨어를 업데이트 할때마다 이 환경을 관리해 준다.
또한 트래픽이 많아진다면 로드 밸런서를 이용해 요청들을 분산하도록 한다.
플랫폼은 Docker로, 브랜치는 Linux로 생성해주도록 한다.
deploy:
provider: elasticbeanstalk
region: "ap-northeast-2"
app: "react-app"
env: "Reactapp-env"
bucket_name: {버킷 name}
bucket_path: {버킷 path}
on:
branch: master
on branch
: master에 머지될 때 배포AWS에서 제공해주는 Secret Key로 전송해주기 위해 IAM 사용자를 생성해주도록 한다.
기존 정책 직접 연결을 선택한 후, 모든 권한을 주도록 한다.
그리고 IAM 에서 발급받은 key들을 travis CI 환경변수에 입력해주도록 하고, deploy 아래에 환경 변수를 travis.yml 파일에 추가해준다.
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_SECRET_ACCESS_KEY
마지막으로, docker file에 컨테이너에서 매핑을 하기 위해 Expose 80
을 넣으면 배포가 된다.
참고로, yml 들여쓰기가 중요하므로 들여쓰기를 잘 확인을 해야 한다🥹