Slim 4 애플리케이션 개발 환경에 Docker 사용
소프트웨어 개발자로서 우리는 먼저 작업 환경을 준비해야 하며 우리가 작성한 코드가 실행될 환경이 많기 때문에 이러한 환경 특성이 공통인지 확인하여 놀라움의 수를 최소화해야 합니다.
또한 팀 구성원으로서 동일한 개발 환경을 갖는 것은 로컬 환경의 영향 없이 모두 동일한 결과를 얻는 데 도움이 될 수 있습니다.
다행히 Docker은 이러한 목표를 달성하는 데 도움이 될 수 있습니다.
도커 디렉토리 생성
docker
라는 새 디렉터리를 만듭니다. 이 디렉터리에는 Docker 컨테이너 정의가 포함되며 이름을 지정할 필요가 없습니다docker
.$ mkdir docker
PHP 7.4 컨테이너 정의
1-
docker
디렉토리 안에 php
라는 새 하위 디렉토리를 추가합니다.$ mkdir -p docker/php
2- 새
Dockerfile
파일 만들기(확장자 없음)touch docker/php/Dockerfile
php Dockerfile을 열고 다음 지침을 추가합니다.
FROM php:7.4-fpm
RUN apt update \
&& apt install -y zlib1g-dev g++ git libicu-dev zip libzip-dev zip libpq-dev \
&& docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
&& docker-php-ext-install intl opcache pdo pdo_pgsql \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
&& docker-php-ext-configure zip \
&& docker-php-ext-install zip
WORKDIR /var/www/slim_app
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN git config --global user.email "[email protected]" \
&& git config --global user.name "Your Name"
Note: Make sure to replace git credentials in the last two lines with your git credentials
위의 지침은
PHP 7.4 FPM
이미지에서 PHP 컨테이너를 스캐폴딩하고 다음을 수행합니다./var/www/slim_app
로 설정합니다.NGINX 웹 서버 컨테이너 정의
PHP 이미지와 달리
docker
디렉토리의 하위 디렉토리에는 NGINX 기본 구성만 필요합니다.새 nginx 디렉토리를 추가합니다.
$ mkdir -p docker/nginx
기본 구성 파일을 추가합니다.
$ touch docker/nginx/default.conf
docker/nginx/default.conf
를 다음과 같이 수정합니다.server {
listen 80;
index index.php;
server_name localhost;
root /var/www/slim_app/public;
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
internal;
}
location ~ \\.php$ {
return 404;
}
}
이것은 PHP 애플리케이션을 실행하는 데 필요한 가장 간단한 NGINX 구성입니다. 이전에 정의한 PHP 컨테이너의 포트 9000에 매핑
fastcgi_pass
합니다.컨테이너 이미지를 합성해 봅시다
PHP 및 NGINX 정의 컨테이너를 사용하려면 애플리케이션의 루트 폴더에 생성
docker-compose.yml
해야 합니다.version: "3.8"
services:
php:
container_name: slim_php
build:
context: ./docker/php
ports:
- '9000:9000'
volumes:
- .:/var/www/slim_app
nginx:
container_name: slim_nginx
image: nginx:stable-alpine
ports:
- '8080:80'
volumes:
- .:/var/www/slim_app
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
PHP 컨테이너에 대해 여기에 있는 내용을 살펴보겠습니다.
docker/php/Dockerfile
를 사용하여 컨테이너를 빌드하기 위한 빌드 컨텍스트가 있습니다. NGINX의 경우
컨테이너 빌드
다음 명령을 실행하여 컨테이너를 빌드합니다.
$ docker-compose up -d --build
컨테이너가 성공적으로 빌드되면 터미널은 다음 스크린샷과 같은 메시지를 출력해야 합니다.
컨테이너가 실행 중인지 확인하려면 Docker Desktop 앱을 열면 아래 스크린샷과 같이 컨테이너가 실행되고 있음이 표시되어야 합니다.
명령줄을 사용하여 컨테이너의 상태를 알 수 있습니다.
$ docker ps
다음과 같이 인쇄해야 합니다.
이제 URL
localhost:8080
을 방문하면 NGINX에 대해 구성한 포트를 입력하고 첫 번째 부분에서 빌드한 Slim 애플리케이션을 실행해야 합니다.GitHub 리포지토리에는 development-environment-part-2 의 이 부분에 코드가 있습니다.
Reference
이 문제에 관하여(Slim 4 애플리케이션 개발 환경에 Docker 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cherif_b/using-docker-for-slim-4-application-development-environment-1opm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)