GitLab, Docker 및 Heroku를 사용하여 연속 배포
통증과 빈도의 관계 – https://www.martinfowler.com/bliki/FrequencyReducesDifficulty.html
지속적인 배치 배후의 생각은 제품 변경의 배치 빈도를 늘리면 이와 관련된 마찰을 줄일 수 있다는 것이다.반대로 배치는 종종 마지막 순간까지 무시되는 활동이다. 소프트웨어 엔지니어가 일하는 고유한 부분이 아니라 필요한 사악함으로 여겨진다.그러나 개발 생명주기에 가능한 한 빨리 배치를 왼쪽으로 옮기면 문제, 의존 관계와 의외의 제약이 발생하는 데 도움이 될 것이다.
예를 들어 지속적인 배치는 어떤 변경이 문제를 초래했는지 이해하기 쉽고 복구하기 쉽다.버전 제어 시스템 기록에 있는 수백 개의 제출 메시지를 스캔해야만 이 문제의 변경 사항을 찾을 수 있다고 상상해 보세요.
자동화는 연속적인 배치를 실현하는 관건이다.
프로젝트
본고에서 우리는 GitLab Pipeline, Heroku, Docker, Create React App 등 도구를 어떻게 이용하여 간단한 연속 배치 파이프를 실현하는지 탐색할 것이다.
간단한 Hello World 응용 프로그램을 만드는 것부터 시작하겠습니다.본문에서 나는 사용 :
$ npx create-react-app continuous-deployment
$ cd continuous-deployment
$ npm start
이제 Heroku에 배치할 수 있도록 Docker 이미지를 구축하는 프로그램이 실행되고 있습니다.Dockerfile 파일 컨테이너 이미지
우리는 간단한 two things to keep in mind when building images for Heroku 을 작성하여 우리의 응용 프로그램을 구축할 것이다.
FROM node:10.17-alpine
COPY . .
RUN sh -c 'yarn global add serve && yarn && yarn build'
CMD serve -l $PORT -s build
먼저 http://localhost:4444:Dockerfile
정의에서 알 수 있듯이 우리는 PORT
환경 변수를 전달함으로써 응용 프로그램을 시작합니다.우리는 지금 로컬에서 이미지를 테스트할 수 있다.$ docker build . -t continuous-deployment:latest
$ docker run -e PORT=4444 -p4444:4444
-e PORT=4444
우리가 탐지할 포트를 지정합니다.현재
을 통해 응용 프로그램을 시험적으로 사용할 수 있습니다.또한 Dockerfile의 끝에 루트가 아닌 사용자에게 모든 것이 정상적인지 확인하기 위해
myuser
사용자를 추가했습니다.cdalediaferia회사 Heroku에 배포
연속적인 배치 파이프라인을 구축하기 전에 수동으로 배치하여 우리의 이미지가 양호함을 확보합시다.Heroku에 새 응용 프로그램을 만들고 이름을 지정합니다.제 경우입니다.
이제 로그인한 후 Heroku 등록표로 그림을 표시합니다.
$ heroku container:login
$ docker tag <image> registry.heroku.com/<app-name>/web
$ docker push registry.heroku.com/<app-name>/web
그리고 바로 Heroku에게 발표:$ heroku container:release -a web
이제 Heroku에 프로그램을 설치하고 실행하는 데 성공했을 것입니다.저장소 GitLab 파이프
이 섹션에서는 GitLab에 파이핑 섹션을 구성하여 애플리케이션을 지속적으로 배포할 수 있도록 합니다.다음은 내 를 위한
.gitlab-ci.yml
파일입니다.위의 코드 세션에서 우리는 두 가지 작업을 정의했다. build_image
와release
Buildah 건물 build\u 이미지
이 작업은 Docker 이미지를 만드는 방법을 지정합니다.만약 네가 자세히 관찰한다면, 너는 내가 특별히 Docker를 사용하지 않고 minor configuration 라는 것을 발견할 수 있을 것이다.Buildah
는 OCI에 맞는 컨테이너 구축 도구로 일부
를 사용하여 Docker 이미지를 생성할 수 있습니다
풀어주다
이 작업은 당신의 Heroku 응용 프로그램으로 미루어 실제 발표를 실행합니다
추가 구성
파이프를 시도하기 전에 HEROKU_API_KEY
파이프 정의에서 사용할 수 있도록 heroku
cli를 설정하십시오
Reference
이 문제에 관하여(GitLab, Docker 및 Heroku를 사용하여 연속 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alediaferia/continuous-deployment-with-gitlab-docker-and-heroku-324j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)