TeamCity를 사용하면 파이프라인의 모든 단계에 Docker를 사용하면서 모든 규모와 복잡성의 프로젝트에서 CI/CD를 자동화할 수 있습니다.
자신의 컴퓨터에서 디버그한 코드가 다른 환경에서 작동하지 않아 좌절한 적이 있으신가요? TeamCity를 사용하면 Docker에서 빌드 및 테스트를 실행할 수 있으므로 애플리케이션이 특정 시스템에 국한되지 않고 QA 시스템부터 클라우드의 프로덕션 인스턴스에 이르기까지 다른 환경에서도 올바르게 작동하도록 보장할 수 있습니다.
확장 가능하고 유지 관리 가능한 CI/CD 인프라를 빌드할 방법을 찾고 계신가요? TeamCity를 사용하면 빌드 매개변수로 Docker 명령어를 사용자 지정하고, 템플릿을 사용하여 중앙 집중식 파이프라인을 설정하고, 오래된 Docker 이미지에서 빌드 에이전트와 Docker 레지스트리 정리를 자동화할 수 있습니다.
서로 다른 앱 구성 요소가 어떻게 상호작용하는지 테스트하거나 특정 환경에서 앱을 테스트해야 하나요? TeamCity는 Docker 컨테이너를 시작하고 통합 테스트를 실행하며 매우 안정적이고 재현 가능한 방식으로 프로세스가 끝날 때 컨테이너를 안전하게 종료합니다.
TeamCity는 Docker를 사용하는 모든 소프트웨어 개발 워크플로를 지원하고 가속화할 수 있습니다. 다른 CI/CD 도구들은 빌드 결과(즉, 성공 여부)에 대한 바이너리 정보만 제공하지만 TeamCity는 Docker와 긴밀하게 통합되어 다음을 포함해 파이프라인에 대한 포괄적인 정보를 제공합니다.
결과적으로 빌드 문제를 신속하게 찾고, 수정해야 할 사항을 이해하고, 새로운 기능을 더 빠르고 더 나은 품질로 배포할 수 있습니다.
TeamCity의 클라우드 버전과 온프레미스 버전 중에서 선택:
Docker 빌드 러너를 사용하면 Docker 명령어를 실행하는 빌드 단계를 추가할 수 있습니다. 이는 Docker 인수를 동적으로 사용자 지정해야 하는 경우 특히 유용합니다. 예를 들어 파이프라인에서 이전에 정의된 운영 체제의 특정 버전에서 빌드를 실행할 수 있습니다. 또한 TeamCity는 빌드 에이전트에서 Docker 이미지의 로컬 캐시를 자동으로 정리하여 후속 빌드에 사용되도록 합니다.
자세한 내용은 당사 문서의 Docker 러너 섹션을 참조하세요.
Docker 래퍼를 사용하면 호스트 운영 체제와 독립적으로 Docker 컨테이너에서 TeamCity 빌드 단계를 실행하여 일관되고 재현 가능한 결과를 제공할 수 있습니다. TeamCity는 빌드 중에 발생하는 모든 이벤트를 추적하고 실시간 보고서, 테스트 분석 및 Docker 컨테이너 내에서 스택 추적과 같은 기타 스마트 기능을 제공합니다.
자세한 내용은 당사 문서의 Docker 래퍼 섹션을 참조하세요.
Docker Compose 빌드 러너는 빌드 시작 시 Docker 컨테이너를 시작하고 빌드가 완료되거나 중지된 후 TeamCity에서 컨테이너를 종료하는 데 사용됩니다. 주요 사용 사례는 구성 요소가 컨테이너화되고 해당 실행을 Docker Compose 파일을 사용하여 설명할 수 있는 통합 테스트를 실행하는 것입니다. 예를 들어 TeamCity 자체는 백엔드로 작동할 수 있는 여러 버전의 서로 다른 데이터베이스에 대해 테스트되며 각각의 통합 테스트는 Docker Compose 빌드 러너를 사용하여 실행됩니다.
자세한 내용은 당사 문서의 Docker Compose 러너 섹션을 참조하세요.
Docker 지원 빌드 기능은 Docker 레지스트리에 대한 액세스를 관리하는 데 사용됩니다. 이는 프로젝트 수준에서 구성되며 Docker Hub, Amazon ECR, JFrog Container Registry 등을 포함하여 널리 사용되는 모든 서비스를 지원하여 다양한 TeamCity 기능을 사용할 수 있게 해줍니다. 예를 들어 서버 정리로 오래된 빌드와 연결된 데이터가 삭제되는 경우, 해당 빌드의 일부로 게시된 Docker 이미지를 제거하도록 구성할 수 있습니다.
자세한 내용은 당사 문서의 Docker 지원 섹션을 참조하세요.
자신의 컴퓨터에서 빌드 및 실행되는 백엔드 서비스를 구현했다고 가정해 보겠습니다. 로컬 환경 외부에서 사용할 계획이 없더라도 시간이 지남에 따라 변경될 수 있는 운영 체제, 빌드 도구, 타사 라이브러리 등이 여전히 많이 있습니다. 로컬 시스템에서 완전히 정적인 환경을 유지하는 것은 실제로는 불가능합니다. 조만간 어딘가에서 균열이 생기게 됩니다.
Docker 및 TeamCity를 사용하면 빌드를 완전히 재현 가능하게 만들 수 있을 뿐만 아니라 종속성을 관리하고 호환성 오류를 수정하는 번거로움을 피할 수 있습니다. Maven을 사용하는 Java 프로젝트의 CI/CD 파이프라인은 다음과 같습니다.
TeamCity는 VCS에 커밋한 순간부터 결과를 얻을 때까지 빌드 및 테스트에 대한 실시간 보고서를 제공하여 가능한 가장 빠른 피드백 루프를 가능하게 합니다. 모든 복잡성과 규모의 프로젝트를 지원하며, 개발 팀이 버그를 최소화하고 기능을 더 빠르게 제공하며 더 투명한 개발 프로세스를 빌드할 수 있도록 도와줍니다.
코드를 작성하지 않고도 간단한 웹 UI를 사용하여 CI/CD 파이프라인을 설정할 수 있습니다. 또한 Kotlin을 사용하여 이를 프로그래밍 방식으로 구성하고 여러 프로그래밍 언어, 운영 체제 및 클라우드 플랫폼을 결합할 수 있는, 관리 및 재현 가능한 지속적 통합 설정을 구현할 수 있습니다.
TeamCity는 Linux, Windows 및 macOS를 포함하여 Docker 런타임을 지원하는 모든 플랫폼에서 Docker와 함께 작동합니다.
예. Docker 컨테이너에서 빌드를 실행하는 외에도 TeamCity는 Docker 이미지를 생성하고 Docker 레지스트리에 이를 푸시하며 다양한 기준에 따라 삭제할 수 있습니다.
예. 소규모 프로젝트의 경우 TeamCity On-Premises를 무료로 사용할 수 있으며 사용자 수나 빌드 시간에 제한이 없습니다. TeamCity Cloud는 14일 무료 평가판 기간을 제공합니다. 두 버전 모두 Docker를 완벽하게 지원합니다.
TeamCity를 사용하면 시스템에서 직접 빌드를 실행하거나 Docker 컨테이너를 사용하여 실행하는 방법 중에서 선택할 수 있습니다.