2020. 11. 17. 16:21ㆍAzure
azure pipeline을 우당탕 설정
개발 중 시간 소모가 가장 컸다.
express, docker, azure pipeline, azure container registry, azure VM 를 사용한다.
1. 로컬에서 설정
먼저 테스트 하기 위한 express 앱을 만든다
npm install express-generator -g
만든 후 ,
도커 파일을 만들어야 한다
도커 파일 이름은 무조건 Dockerfile로 해야한다. dockerfile로 하면 인식을 못하니 주의하자
pm2를 이용해서 서버를 실행 할 거라서 pm2를 설치하고 실행 할 것이다.
FROM node:12
WORKDIR /app
COPY . .
RUN npm i -g pm2
RUN npm i
EXPOSE 3000
CMD [ "pm2-runtime", "start", "./bin/www"]
로컬에서는 이렇게 세팅만 해주면된다. 그 후, 코드를 보낼 수 있게 github에 push를 해준다.
2. Container registries
docker image를 push하기 위한 저장소를 만든다.
이렇게 간단히 만들어 둔다.
3. azure pipelines 생성
dev.azure.com 에 가입한다.
가입 한 후 프로젝트를 생성 해준다.
pipelines를 클릭하여 파이프라인을 생성해준다.
우리는 github를 사용하니 github를 클릭한다.
클릭을 하면 본인이 사용하는 깃 repository 나오는데 ci cd를 할 repository를 선택하면된다.
그 후
우리가 사용해야할 docker image를 azure container registry에 push하는 방법을 선택한다.
본인이 생성한 azure container registry를 찾은 후
이미지 이름을 본인 취향대로 바꿔주면되고 우리가 아까 만든 도커 파일경로를 적어주면된다. app.js가있는 경로에 넣어놔서 변경할 필요는 없다.
생성을 하면 자동으로 azureDevOps에서 자동으로 yaml파일을 만들어 준다. save and run 를 해주면 깃에 commit과 push를 해준다.
이렇게 파이프 라인을 생성을 했다.
4. 배포그룹 생성하기
프로젝트를 생성하고 본인이 사용하는 azure VM에 있는 Continuous delivery를 눌러 사진 처럼 생성한다.
Deployment group를 create 해서 이름을 지어주고, 본인이 만든 파이프라인을 선택하고 생성해준다.
5. 배포 CD
dev.azure.com에 접속하여 Deployment group에서 본인이 만든 그룹에 들어가 스크립트문을 복사한다.
그리고 본인이 만든 azure VM에 접속한다.
접속 후 일반 모드로 복사했던 스크립트 문을 실행 시켜준다.
실행 후에 sudo su 로 관리자 모드로 변경 한 후
우리가 만든 Container registry에 로그인을 한다. 로그인 하는 방법은
docker login 본인이 만든 Container registry이름.azurecr.io 입력하면 username과 password를 입력하라고 뜨는데
azure container registry에 가면 access keys가있다
거기에 username, password가 있으니 차례에 맞게 넣어주면 로그인이 된다.
배포를 할수있는 쉘파일을 생성해야한다. 그러기 위해
deploy.sh파일을 생성한다.
vi deploy.sh
sudo docker login 본인 Container registry.azurecr.io
sudo docker stop `docker ps -a -q`
sudo docker rm `docker ps -qa`
sudo docker pull 본인 Container registry.io/본인 도커이미지 이름:$BUILD_BUILDID
sudo docker run -p 3000:3000 -d 본인 Container registry.azurecr.io/본인 도커이미지 이름:$BUILD_BUILDID
이렇게 생성하면 VM에서 해주어야 할것은 끝났다.
으로 생성하는데 $BUILD_BUILDID가 무엇인지는 뒤에 가서 설명하겠다.
'Azure' 카테고리의 다른 글
우당탕 Azure Pipeline CI CD 설정 하기 (3) (0) | 2020.11.17 |
---|---|
우당탕 Azure Pipeline CI CD 설정 하기 (2) (0) | 2020.11.17 |
Vue에서 Azure blob storage에 파일 업로드 하기 Express 사용 (0) | 2020.10.29 |
Azure Blob Storage에 파일 업로드 하기 Node(Express) 사용 (0) | 2020.10.29 |
Azure CosmosDB연결시 Collection 명칭 (0) | 2020.08.04 |