카우치베이스 서버

카우치베이스 애플리케이션으로 PHP를 Docker 컨테이너로 배포하기

올해 초에 저는 Couchbase Server와 통신하는 다양한 개발 기술로 작성된 애플리케이션을 컨테이너화하는 것에 대해 글을 썼습니다. 예를 들어, 저는 애플리케이션을 컨테이너화하기 위해 Docker를 사용한 Golang 애플리케이션, a Docker를 사용한 Java 애플리케이션Docker를 사용한 Node.js 애플리케이션. 이번에는 카우치베이스 서버 컨테이너와 통신하는 PHP 컨테이너를 배포하는 방법을 살펴보겠습니다.

자동으로 프로비저닝된 Couchbase 노드와 Couchbase NoSQL 노드에서 데이터를 쓰고 읽는 간단한 PHP 애플리케이션을 만들어 보겠습니다.

먼저 두 컨테이너를 표현할 프로젝트 구조를 정의해 보겠습니다:

각 컨테이너에는 고유한 도커파일 설정에 대한 청사진 정보가 포함됩니다. 그리고 docker-compose.yml 파일은 정의된 포트 및 환경 변수 정보를 사용하여 컨테이너를 빌드하고 배포합니다.

PHP 애플리케이션 컨테이너화

이 튜토리얼은 PHP 튜토리얼이므로 간단한 PHP 애플리케이션을 빌드하고 컨테이너화하는 것부터 시작하겠습니다. 배포를 자동화하고 싶기 때문에 우리는 php.ini 파일을 로컬에 저장하고 빌드 프로세스 중에 복사합니다.

이 부분에 들어가기 전에 먼저 index.php file:

위의 코드에서는 인쇄되는 모든 데이터가 JSON 형식이 될 것이라고 말합니다. Couchbase 클러스터에 대한 연결을 설정하고 해당 클러스터에서 특정 버킷을 열고 있습니다. 여기서 중요한 점은 환경 변수를 사용해 클러스터와 버킷을 정의하고 있다는 것입니다. 이러한 변수는 배포 프로세스에서 설정됩니다.

애플리케이션이 연결된 상태에서 Couchbase에서 키로 문서를 가져오려고 시도합니다. 해당 문서가 존재하지 않으면 문서를 생성한 다음 가져옵니다. 결과적으로 가져온 문서가 인쇄됩니다.

앞서 언급했듯이, 이 애플리케이션은 단순한 애플리케이션이며 화려한 것은 없습니다. 이제 이 애플리케이션의 Docker 측면에 집중할 수 있습니다.

열기 도커파일 를 클릭하고 다음을 포함합니다:

위에서는 Apache 이미지를 사용한다고 나와 있습니다. PHP와 함께 Couchbase를 사용해 본 적이 있다면 다음에 나오는 내용이 매우 익숙하게 보일 것입니다. 모든 의존성 수집은 바로 카우치베이스 PHP 문서. . RUN 명령은 런타임이 아닌 빌드 시점에 종속성을 수집한다는 의미입니다.

종속성을 사용할 수 있으므로 php.ini 파일이 이미지에 복사되고 index.php 파일로 이동합니다. 이렇게 하면 php.ini 파일을 만듭니다.

길고 지저분한 구성을 붙여넣기보다는 php.ini 파일에서 공식 PHP GitHub 리포지토리. 저희가 변경하는 유일한 사항은 확장 기능에 관한 것입니다. 에 따라 카우치베이스 PHP 문서에 다음을 추가해야 합니다:

확장 프로그램 섹션을 찾아서 추가합니다.

이 시점에서 PHP 이미지를 빌드하고 컨테이너로 배포할 수 있습니다. 하지만 미리 계획을 세우고 Compose 파일을 만들겠습니다.

열기 docker-compose.yml 파일을 열고 다음을 포함하세요:

위는 다음과 같은 서비스를 정의합니다. php 포트 매핑과 환경 변수를 사용합니다. 이러한 변수는 PHP 애플리케이션에 있는 것과 일치합니다. 이미지는 도커파일 PHP 프로젝트에서 찾을 수 있습니다.

설정한 경우 COUCHBASE_HOST 를 원격으로 이동하는 것이 좋지만 이 예제에서는 다른 컨테이너를 사용하겠습니다.

카우치베이스 서버 컨테이너화

Couchbase를 컨테이너화하는 목표는 이를 자동화하는 것입니다. 이미 Couchbase용 Docker 이미지가 존재하지만 사전 프로비저닝되어 있지 않아 배포 과정에서 시간이 걸릴 수 있습니다.

열기 도커파일 Couchbase 프로젝트를 파일로 만들고 다음을 포함하세요:

위에서는 공식 Couchbase 이미지를 사용한다고 했지만, 여기에는 스크립트를 복사한 다음 런타임에 실행할 것입니다. 이 스크립트는 인스턴스를 자동으로 프로비저닝합니다.

열기 configure.sh 파일을 열고 다음 명령을 포함합니다:

Couchbase Server에는 여러 cURL 명령으로 사용하려고 하는 자체 RESTful API가 있습니다. 메모리 할당량, 노드에 존재하는 서비스, 인증 정보를 정의하고 있습니다.

많은 명령에 다음과 같은 환경 변수가 포함되어 있습니다. $COUCHBASE_ADMINISTER_USERNAME. 왜냐하면 우리는 그것들을 docker-compose.yml 파일을 생성합니다.

열기 docker-compose.yml 파일을 열고 다음과 같이 만듭니다:

다른 서비스도 포함했습니다. 카우치베이스 포트 매핑과 환경 변수가 많이 있습니다. 하지만 여기서 주의해야 할 중요한 사항이 있습니다. 기억하세요. COUCHBASE_HOST 를 입력해야 하나요? 데이터베이스의 서비스 이름과 일치해야 하는 호스트가 있습니다. 카우치베이스.

Docker로 컨테이너 배포하기

기반이 마련되었으므로 이제 두 개의 컨테이너를 배포하여 기능적인 마이크로서비스 세트를 확보할 차례입니다.

Docker CLI에서 다음을 실행합니다:

위의 명령은 Compose 파일에 정의된 포트를 사용하여 각 이미지를 빌드하고 배포합니다. 웹 브라우저에서 http://localhost:8091 을 입력하면 Couchbase Server 대시보드로 이동하고 http://localhost:8080 을 입력하면 PHP 애플리케이션으로 이동합니다.

성공하면 데이터베이스에 정보가 저장되고 화면에 표시되는 것을 볼 수 있습니다.

결론

지금까지 Couchbase NoSQL 컨테이너와 통신하는 PHP 애플리케이션을 컨테이너화하여 배포하는 방법을 살펴보았습니다. 우리가 선택한 애플리케이션은 간단했지만, 사용 가능한 PHP 프레임워크를 사용하여 더 복잡한 것으로 쉽게 확장할 수 있습니다.

이 동일한 가이드는 다음에서도 볼 수 있습니다. Node.js, GolangJava. 카우치베이스 서버 컨테이너화에 대해 더 자세히 알고 싶으시다면, 제가 더 자세한 버전을 작성했습니다. 여기.

카우치베이스 PHP SDK에 대한 자세한 내용은 다음을 확인하세요. 카우치베이스 개발자 포털.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Nic Raboy, 개발자 옹호자, Couchbase

닉 라보이는 최신 웹 및 모바일 개발 기술을 옹호하는 사람입니다. 그는 Java, JavaScript, Golang 및 Angular, NativeScript, Apache Cordova와 같은 다양한 프레임워크에 대한 경험이 있습니다. Nic은 웹 및 모바일 개발을 보다 쉽게 이해할 수 있도록 자신의 개발 경험에 대해 글을 쓰고 있습니다.

댓글 하나

  1. 너무 오래되었는데 SDK 3.0을 사용할 수 있나요?

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.