Nginx 및 Postgres로 Laravel 앱을 도커화합니다. 1장
도커 컨테이너를 사용하면 버전 관리 오류, 호환되지 않는 종속성 등에 대해 걱정할 필요 없이 누구에게나 모든 컴퓨터에 앱을 제공할 수 있습니다.
따라서 이 게시물에는 Postgres를 데이터베이스로 사용하는 Laravel 앱이 있습니다. 이 경우 여러 데이터베이스를 사용하고 있습니다.
쉽게 하기 위해 Laravel 앱, 데이터베이스 postgres 및 웹 서버 Nginx를 도커화합니다.
전제 조건
시작하기 전에 laravel 앱에 새 폴더를 추가해야 합니다.
...rest of laravel dirs and files
|- infra
|--- app
|--- nginx
|------ conf
|--- pgsql
|------ script
도커 구성을 저장할 폴더
infra
를 생성해 보겠습니다. infra
내에는 laravel & PHP app
를 저장할 Dockerfile
, 웹 서버용 nginx
, 데이터베이스용 pgsql
이 있습니다.PHP
앱을 실행하려면 이러한 PHP 종속성이 필요합니다.
이제 사용할 도커 이미지의 종속성을 확인하겠습니다.
docker run php:7.4-fpm php -m
사용할 PHP 이미지에 일부 종속성이 존재하지 않는 것을 볼 수 있습니다. 이제 커스텀 이미지를 만들어 봅시다.
Dockerfile
폴더 안에 app
를 만듭니다.->
/infra/app/Dockerfile
FROM php:7.4-fpm
RUN apt-get update \
&& apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip \
zlib1g-dev \
libpq-dev \
libzip-dev
RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
&& docker-php-ext-install pdo pdo_pgsql pgsql zip bcmath gd
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
EXPOSE 9000
기본적으로 이 Dockerfile은 작성기에 필요한 PHP 종속성을 설치한 다음 포트 9000에서 PHP 앱을 노출합니다.
확장 프로그램을 사용자 정의할 수 있습니다. 필요하면 설치할 수 있고, 필요하지 않으면 제거할 수 있습니다. PHP 확장을 설치하는 명령 목록은 here을 참조하십시오.
도커 구성 만들기
그런 다음 프로젝트의 루트로 돌아가서 거기에
docker-compose.yml
를 생성합니다.version: "3.7"
networks:
app-network:
driver: bridge
services:
app:
container_name: app
build:
context: ./infra/app
dockerfile: Dockerfile
image: php-laravel-7.0
restart: unless-stopped
tty: true
working_dir: /var/www
volumes:
- ./:/var/www
networks:
- app-network
기본적으로 이 구성을 복사할 수 있습니다.
원하는 대로 컨테이너 이름을
container_app
로, 이미지 이름을 image
로 지정할 수 있습니다../:/var/www
의 volumes
는 laravel 루트./
에서 컨테이너 작업 디렉토리/var/www
로 laravel 앱을 복사한다는 것을 의미합니다.네트워크here에 대한 자세한 내용을 읽을 수 있습니다.
...계속하다...
Reference
이 문제에 관하여(Nginx 및 Postgres로 Laravel 앱을 도커화합니다. 1장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/burhanahmeed/dokerize-laravel-app-with-nginx-and-postgres-4le1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)