현대 PHP 개발에서는 환경 관리를 위해 컨테이너 기술을 사용하는 것이 점점 더 보편화되었습니다. 이 기사에서는 Docker 컨테이너 기술을 사용하여 PHP 프로젝트의 개발 환경을 생성, 구성 및 관리하는 방법을 소개합니다.
1. 환경 관리를 위해 컨테이너 기술을 사용하는 이유
기존 PHP 개발에서는 현재 프로젝트에 적합한 환경을 구축하기 위해서는 많은 구성과 설치가 필요합니다. 이러한 구성을 획일적으로 패키징하면 개발 시 이식성, 일관성, 안정성이 향상될 수 있습니다. 이 경우 컨테이너 기술을 활용하는 것은 불가피한 선택이 된다.
구체적으로 컨테이너 기술을 사용하면 다음과 같은 이점이 있습니다.
2. Docker를 사용하여 PHP 개발 환경 만들기
Docker는 현재 가장 널리 사용되는 컨테이너 기술 중 하나이므로 이 기사에서는 Docker를 사용하여 PHP 개발 환경을 만듭니다.
먼저 로컬 환경에 Docker를 설치해야 합니다. 공식 웹사이트에서 귀하의 머신에 적합한 Docker 버전을 다운로드하여 설치할 수 있습니다.
프로젝트의 루트 디렉터리에 Dockerfile이라는 파일을 생성하고 파일 내용을 작성합니다. Dockerfile은 Docker가 이미지를 생성하는 데 사용하는 스크립트 파일입니다. Dockerfile의 구체적인 내용은 다음과 같습니다.
FROM php:7.4-fpm # Install dependencies RUN apt-get update && apt-get install -y git libzip-dev unzip # Install PHP extensions RUN docker-php-ext-install zip pdo_mysql # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Set working directory WORKDIR /app
이 Dockerfile의 의미는 기존 PHP 기본 이미지에서 새 이미지를 빌드하는 것입니다. 그런 다음 git, libzip 및 unzip과 같은 필수 종속성을 설치하고 PHP 확장 zip 및 pdo_mysql을 설치하십시오.
COPY 명령은 Composer 이미지의 파일을 새 이미지로 복사하는 데 사용되므로 Composer 도구를 새 이미지에서 정상적으로 사용할 수 있습니다.
다음으로 Dockerfile을 사용하여 Docker 이미지를 빌드해야 합니다. 터미널에 프로젝트 루트 디렉터리를 입력한 후 다음 명령을 실행합니다.
docker build -t project-name .
여기서 project-name은 생성할 Docker 이미지의 이름이고 마지막 "."은 Dockerfile 파일이 있는 디렉터리를 나타냅니다. 이 명령은 프로젝트에 대한 새 Docker 이미지를 생성합니다.
다음 명령을 사용하여 새 이미지의 컨테이너를 시작합니다.
docker run -p 8000:8000 -v "$(pwd)":/app -it project-name
여기서 "8000"은 컨테이너에서 노출할 포트 번호입니다. 이 예에서는 컨테이너의 8000 포트를 다음과 같이 매핑합니다. 호스트의 8000 포트. 또한 -v 매개변수는 PHP 코드가 컨테이너 내에서 실행될 수 있도록 현재 디렉터리를 컨테이너 내의 /app 디렉터리에 매핑합니다. 마지막으로 "project-name"은 사용할 Docker 이미지의 이름을 나타냅니다.
3. Docker Compose를 사용하여 복잡한 PHP 프로젝트 관리
복잡한 PHP 프로젝트의 경우 여러 서비스(예: 데이터 저장소, 캐시, 웹 서버 등)를 사용해야 할 수 있습니다. 현재 Docker Compose를 사용하여 이러한 서비스를 관리할 수 있습니다.
Docker Compose는 여러 Docker 컨테이너를 관리하는 데 사용할 수 있는 Docker용 도구입니다. Docker Compose를 사용하면 여러 컨테이너를 생성 및 구성하고, 서로 연결하고, 몇 가지 일반적인 배포 작업(예: 데이터 볼륨 및 포트 매핑 등)을 처리할 수 있습니다.
Docker Compose는 docker-compose.yml이라는 구성 파일을 사용합니다. PHP 프로젝트의 루트 디렉터리에 이 파일을 만들고 그 안에 생성할 컨테이너를 정의합니다. 예는 다음과 같습니다.
version: '3.4' services: php: build: . ports: - "8000:8000" volumes: - .:/app depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: app MYSQL_USER: app MYSQL_PASSWORD: secret volumes: - db_data:/var/lib/mysql volumes: db_data:
이 파일은 php와 db라는 두 가지 서비스를 정의합니다.
php 서비스는 이전에 생성된 Dockerfile을 사용하여 새 이미지를 빌드한 다음 컨테이너의 8000 포트를 호스트의 8000 포트에 매핑하고 현재 디렉터리를 컨테이너 내의 /app 디렉터리에 매핑합니다. 서비스는 db 서비스에 따라 다릅니다.
db 서비스는 MySQL 5.7의 공식 이미지를 사용하고 MySQL의 루트 비밀번호, 데이터베이스 이름, 사용자 및 기타 정보를 설정하기 위한 일부 환경 변수를 정의합니다. MySQL 컨테이너 내에 영구 스토리지로 데이터 볼륨도 생성됩니다.
이 파일은 db_data라는 볼륨도 정의합니다. 볼륨은 여러 컨테이너 간에 데이터를 공유할 수 있도록 컨테이너 내에 데이터를 저장하는 데 사용됩니다. 볼륨은 일부 영구 스토리지 솔루션도 제공합니다.
docker-compose.yml 파일을 작성한 후 다음 명령을 사용하여 PHP 프로젝트에 정의된 모든 컨테이너를 만들고 시작할 수 있습니다.
docker-compose up -d
이 명령은 정의된 모든 서비스를 백그라운드에서 실행합니다. .
다음 명령을 실행하면 실행된 모든 컨테이너를 확인할 수 있습니다.
docker ps
모든 서비스와 컨테이너를 중지해야 하는 경우 다음 명령을 실행할 수 있습니다.
docker-compose down
이 명령은 중지됩니다. 실행 중인 모든 컨테이너를 삭제하고 모든 서비스를 제거합니다. 특정 서비스를 중지하고 삭제해야 하는 경우 다음 명령을 실행할 수 있습니다.
docker-compose stop service-name docker-compose rm service-name
여기서 service-name은 중지하고 삭제할 서비스의 이름입니다.
이 문서에서는 Docker를 사용하여 PHP 개발 환경을 만들고 관리하는 기본 개념과 단계를 소개합니다. 컨테이너 기술을 사용하면 개발 프로세스의 일관성, 이식성 및 신뢰성을 향상시킬 수 있으며 PHP 프로젝트 개발에 중요한 역할을 할 수 있습니다.
위 내용은 PHP 개발에서 환경 관리를 위해 컨테이너 기술을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!