컨테이너 기술의 대중화로 Docker는 현대 소프트웨어 개발을위한 중요한 도구가되었습니다. PHP 개발자의 경우 Docker는 "내 컴퓨터에서 문제 없음"의 문제를 해결할뿐만 아니라 배포 효율성과 환경 일관성을 향상시킵니다.
Docker를 사용하여 PHP 응용 프로그램을 실행하는 것은 다음과 같은 장점이 있습니다.
환경 일관성 : 일관된 개발, 테스트 및 생산 환경을 보장합니다.
빠른 배포 : 미러링은 한 번 구축되며 여러 플랫폼에서 재사용 할 수 있습니다.
유지 관리가 쉽습니다 : 컨테이너는 고도로 분리되어 있으며 업데이트 및 롤백이 더 편리합니다.
Dockerfile은 컨테이너의 실행중인 환경을 정의하는 파일입니다. 다음은 PHP 프로젝트의 기본 예입니다.
FROM php:8.0-apache
# 복사 PHP 컨테이너에 소스 코드
COPY src/ /var/www/html/
# 할 수 있게 하다 Apache ~의 mod_rewrite 기준 치수
RUN a2enmod rewrite
이 dockerfile은 Apache의 공식 이미지와 함께 PHP 8.0을 사용하고 프로젝트 소스 코드를 컨테이너의 웹 루트 디렉토리에 복사하고 대부분의 PHP 프레임 워크에 적합한 URL 재 작성을 활성화합니다.
dockerfile을 작성한 후 다음 명령을 사용하여 이미지를 만들고 컨테이너를 시작할 수 있습니다.
# 거울을 만듭니다
docker build -t my-php-app .
# 컨테이너를 실행하십시오
docker run -d -p 80:80 my-php-app
이 명령은 my-php-app 이라는 이미지를 생성하고 백그라운드에서 실행되는 컨테이너를 시작하여 컨테이너 포트 80을 호스트 포트에 매핑합니다.
Docker Compose는 프로젝트에 여러 서비스 (예 : 데이터베이스)가 포함될 때 탁월한 선택입니다. 다음은 일반적인 PHP + MYSQL 구성 구성 예입니다.
version: '3.8'
services:
web:
image: php:8.0-apache
volumes:
- ./src:/var/www/html/
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: my_db
이 구성은 두 가지 서비스를 정의합니다.
웹 : PHP 애플리케이션 컨테이너, 로컬 코드 디렉토리 매핑 및 포트 80을 엽니 다.
DB : MySQL Service는 루트 비밀번호 및 기본 데이터베이스를 설정합니다.
모든 서비스는 Docker-Compose UP 명령을 한 번 클릭하여 개발 효율성을 크게 향상시킬 수 있습니다.
PHP 응용 프로그램을 포함하는 것은 휴대용 및 고도로 유지 관리 가능한 시스템을 구축하는 데 중요한 단계입니다. Dockerfiles를 합리적으로 작성하고 Docker Compose를 사용하면 개발 환경을 신속하게 구축 할뿐만 아니라 온라인 배포의 안정성과 일관성을 보장 할 수 있습니다.
Docker와 PHP의 이러한 조합 기술을 마스터하면 개발 프로세스에 더 많은 가능성과 편의성이 제공됩니다.