Docker는 다양한 환경에서 빠르고 안정적인 배포를 달성하기 위해 애플리케이션과 해당 종속 환경을 함께 패키징할 수 있는 경량 컨테이너화 플랫폼입니다. 이 문서에서는 Docker 컨테이너화와 Yii 프레임워크 애플리케이션 배포를 사용하여 개발 및 출시 프로세스를 보다 효율적이고 일관되게 만드는 방법을 설명합니다.
먼저 프로젝트의 루트 디렉터리에 Dockerfile 이라는 새 파일을 만들고 다음 내용을 작성합니다.
FROM php:7.4-fpm
WORKDIR /var/www
COPY composer.json .
RUN composer install
COPY . .
EXPOSE 80
CMD ["php", "-S", "0.0.0.0:80"]
이 파일은 PHP 환경의 기본 이미지를 정의하고, 프로젝트 종속성을 설치하고, 컨테이너의 작업 디렉터리와 시작 명령을 설정합니다.
터미널에 프로젝트 루트 디렉터리를 입력하고 다음 명령을 실행하여 이미지를 빌드합니다.
<span class="fun">docker build -t yii-app .</span>
이 명령은 Dockerfile의 구성을 기반으로 yii-app 이라는 이미지를 생성합니다.
이미지가 빌드된 후 다음 명령을 사용하여 컨테이너를 실행할 수 있습니다.
<span class="fun">docker run -p 8080:80 yii-app</span>
실행 후 http://localhost:8080 에 접속하시면 Yii 어플리케이션이 정상적으로 시작되는지 확인하실 수 있습니다.
애플리케이션을 로컬에서 테스트하면 원격 서버에 배포할 수 있습니다. 먼저 빌드된 이미지를 Docker Hub 또는 프라이빗 이미지 웨어하우스에 푸시한 후 서버에서 다음 작업을 수행합니다.
이미지를 가져옵니다.
<span class="fun">docker pull <레지스트리>/<네임스페이스>/yii-app</span>
컨테이너를 실행합니다.
<span class="fun">docker run -p 80:80 <레지스트리>/<네임스페이스>/yii-app</span>
할 것이다
Yii 프로젝트에 데이터베이스, 캐시 및 기타 서비스가 필요한 경우 Docker Compose를 사용하여 여러 컨테이너를 균일하게 관리할 수 있습니다. 프로젝트 루트 디렉터리에 docker-compose.yml 파일을 만듭니다. 예는 다음과 같습니다.
version: '3'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./:/var/www
그런 다음 터미널에서 다음 명령을 실행하여 애플리케이션을 시작합니다.
<span class="fun">도커-작성 -d</span>
Docker Compose는 자동으로 이미지를 빌드하고 Yii 애플리케이션과 종속 서비스가 함께 실행될 수 있도록 필요한 컨테이너를 시작합니다.
Docker를 통한 Yii 프레임워크 애플리케이션의 컨테이너화된 배포는 환경 구성을 단순화할 뿐만 아니라 개발, 테스트 및 프로덕션 환경의 일관성을 유지합니다. 단일 컨테이너 배포이든 다중 컨테이너 오케스트레이션이든 Docker는 Yii 프로젝트의 지속적인 통합 및 제공을 위한 효율적인 솔루션을 제공합니다.