[Docker] 간단한 어플을 개발 환경에서 Test해보기 (Travis-CI)

2023. 8. 14. 15:54초기 과업/DevSecOps

작성자알 수 없는 사용자

728x90
반응형

 

안녕하세요. 기깔나는 사람들에서 DMSO를 맡고있는 정우입니다.

지난번에 도커를 사용해 react앱을 운영환경에서 Nginx를 사용해서 실행해보았는데

오늘은 실제로 깃허브에 배포를 해보고 Travis CI라는 곳에서 소스를 가져간후 소스가 잘 돌아가는지 Test해볼게요.

 


Git연동

우선 깃허브에 내 레파지토리를 생성해줄게요

 

깃허브에 생성된 프로젝트를 로컬에 연동해줍니다.

git remote add origin <깃프로젝트 주소>

 

push 를 해주는데 

이때 비밀번호를 사용하면 에러가 발생합니다.

2021년 8월부터 개인 토큰을 이용해서 로그인해야 합니다.

 

사용방법 : ▼ 더보기

더보기

 

내 프로필 클릭 -> Settings -> Developer Settings로 이동해줍니다.

 

 

 

새로운 토큰을 생성해주겠습니다.

 

 

 생성을 하면 토큰이 생성되고 이것을 복사해서 password에 넣어주면 됩니다.

 

 

Username for 'https://github.com' : <내가 사용하는 계정 이름>

Password for 'https://<내가 사용하는 계정이름>@github.com' : <복사한 토큰>

 

 

 

이렇게 되면 push된게 보여집니다!

 

연동이 완료되었습니다. 


Travis CI 란?

Github에서 진행되는 오픈소스 프로젝트를 위한 CI 서비스 입니다.

Travis CI를 이용하면 Github repository에 있는 프로젝트를 테스트, 빌드, 배포가 가능해집니다.

 

사용방법 : 

로컬 Git push -> Github -> Travis CI -> AWS

 

 

Travis CI 사이트로 이동 : http://travis-ci.org/

 

Blog – Travis-CI

Get the latest news on CI/CD and find what is happening with Travis CI.

www.travis-ci.com

 

깃허브 아이디로 회원가입을 해볼게요

 

 

이제 Travis CI 에서 내 레파지토리를 가져올 수 있도록 해볼게요

내 프로필에서 -> setting으로 들어가볼게요

 

 

 

 

우리가 사용하는 도커 앱만 가져올게요

 

앱이 생성된 것이 보여집니다.

 

 

 Travis CI로 소스를 전달하고 어떻게 Test를 할지를 설정하는 travis.yml 파일을 만들어보겠습니다.

# 관리자 권한갖기
sudo: required

#언어 플랫폼 선택
language: generic

# 도커에서 실행해줄거니까 도커환경을 구성해보겠습니다.
services:
  - docker

# install하기전에 실행해줄 명령어
before_install:
  - echo "start Creating an image with dockerfile"
  - docker build -t jjwdocker/react -f Dockerfile.dev .

# 실행할 스크립트(테스트 실행)
# --coverage : 자세한 내용을 확인하도록
script:
  - docker run -e CI=true jjwdocker/react npm run test -- --coverage

after_success:
  - echo "Test Success"

 

이것을 다시 깃허브에 배포해서 Travis CI가 잘 실행되는지  확인해보기

 

깃허브 배포하기

git add .

git commit -m "Travis CI 확인"

git push origin master

 

업데이트가 안된다!ㅜㅜ

 

 

 

파일명이 잘못됐다ㅜㅜ

travis.yml 파일을 -> .travis.yml 파일로 변경 후 다시 push

자동으로 test환경이 생성되는것이 보입니다.

 

 

test 실패ㅠㅜ

확인해보니 Dockerfile.dev가 비어있습니다

 

왜 비어있는지 모르겠지만,., 

다시 작성해주고 push해주겠습니다.

FROM node:10

WORKDIR /usr/src/app

COPY package.json ./

RUN npm install

COPY ./ ./

CMD ["npm", "run", "start"]

 

Test확인: 

 

 

 


 

 

이렇게 Travis-CI를 이용해서 개발환경에서 어떻게 test가 되는지 확인해보았습니다.

 

강의의 뒤에는 AWS를 사용하게 되는데 AWS에 대해서는 추후에 다뤄보는걸로 하겠습니다,

사용하지 않는 컨테이너 일괄적으로 삭제해볼게요

 

$ docker container prune

 

사용하지 않는 이미지 전체삭제

이렇게 되면 dangling 되어있는 것까지 삭제됩니다.

깔끔하게 삭제할 수 있습니다. 

$ docker image prune -a

저는 실습으로 사용했던 이미지이기때문에

전부 다 삭제하지만

 

추후에는 -a옵션은 조심해서 사용해야할 것 같습니다. 

 


이렇게 기본적인 도커 사용법은 익히고

Jenkins에 대해 학습하러 가보도록 하겠습니다! 

 

 


참고자료

🔗 - 인프런-따라하며 배우는 도커와 CI환경

 

 

 

 

 

728x90
반응형