Docker 이미지. PHP 프로젝트를 30초 이내에 실행하기 위해.
Source: Dev.to
PHP Full 이미지 출시 (버전 8.5)
이번 주에 PHP 애플리케이션용 Docker 이미지 8.5 버전을 출시했습니다. 이 이미지는 8.1 버전부터 제공되어 왔으며, 실제 운영 환경에서 광범위하게 테스트되었고 Docker Hub에서 10 K 이상의 풀을 기록했습니다.
주요 기능
- 최신 버전으로 사전 설정된 PHP
- 통합 웹 서버 (nginx)
- 유용한 도구: Composer, cron 및 일반 확장 모듈
- 무결성 테스트 및 정기 업데이트
- 운영 환경에 권장되는 보안 설정
Convenia는 PHP 8.1부터 8.5까지 동일한 표준을 유지하여 모든 사내 프로젝트에 안정성과 지속적인 지원을 제공합니다.
빠르게 시작하기
Docker run
docker run --rm -p 80:80 convenia/php-full:8.5
http://localhost에 접속하면 PHP + nginx가 제공하는 이미지 자체 문서를 확인할 수 있습니다.
Docker Compose
프로젝트 루트에 docker-compose.yml 파일을 생성합니다:
services:
app:
image: convenia/php-full:8.5
container_name: app
volumes:
- .:/var/www/app
ports:
- "80:80"
스택을 시작합니다:
docker-compose up -d
참고:
- Laravel, Symfony 또는
public폴더를 엔트리포인트로 사용하는 모든 PHP 애플리케이션의 경우, 볼륨을 다음과 같이 조정합니다:volumes: - .:/var/www/app/public- FPM 서비스(포트 9000)는 내부에서만 노출됩니다; 외부 환경에서는 포트 9000을 차단하세요.
웹 서버 설정 커스터마이징
nginx 기본 설정을 교체할 수 있습니다:
services:
app:
image: convenia/php-full:8.5
volumes:
- ./nginx.conf:/etc/nginx/http.d/default.conf
컨테이너 내에서 cron 사용하기
이미지에는 cron 바이너리가 포함되어 있어 스케줄 작업(예: Laravel 스케줄러)을 쉽게 실행할 수 있습니다.
-
원하는 명령을 담은
crontab파일을 생성합니다. -
컨테이너에 복사합니다:
COPY crontab /etc/crontabs/root -
컨테이너에서 cron을 시작합니다:
docker run --rm mycronimage crond -l 2 -f
PHP Full 이미지를 사용할 때의 장점
- 환경 간 일관성 (개발, 테스트, 운영)
- 사용 편의성 – 한 명령으로 애플리케이션 실행
- 지속적인 업데이트 – 의존성 스캔을 포함한 주간 빌드
- 전사 통일 표준으로 예기치 않은 문제와 재작업을 최소화