[시리즈] docker & nginx를 이용한 Drupal Env - 2!
지금은 환경을 고정화할 것입니다.
따라서 기본적인 도커 지식은 더 나아가야 합니다.
먼저 우리는 우리의 경우에 필요한 서비스 또는 그룹화할 docker-compose 파일이 필요합니다.
각 컨테이너에서 필요한 구성 파일( 의 동일한 파일)을 제공하고 해당 파일은 컨테이너에 직접 복사됩니다.
다음으로 호스트 머신에서 선택한 포트로 각 서비스를 노출 및 매핑하고 의도한 코드베이스 프로젝트를 nginx 및 php-fpm 컨테이너의 볼륨으로 마운트하여 컨테이너 내에서 액세스할 수 있도록 합니다. 영구 데이터베이스 스키마가 필요하므로 Mariadb 컨테이너의 데이터를 저장할 외부 볼륨을 추가해야 합니다.
또한 필수 서비스(웹 서버 - 데이터베이스 및 php-fpm)에 대한 종속성을 추가할 수 있습니다. 이를 연결하여 액세스 가능한 php 컨테이너 및 mariadb를 갖기 전에 웹 서버가 시작되지 않도록 할 수 있습니다.
이제 구성 파일을 다루었으므로 사용된 도커 이미지로 이동하겠습니다.
mariadb의 경우 빌드 구성에 대한 사전 작업이 필요하지 않기 때문에 docker-hub의 공식 이미지를 사용했습니다 ....
PHP 이미지에 관해서는 일부 패키지(gd imagck apcu memcached redis 작곡가) 및 drush(모든 drupal 개발자가 유용하다고 생각함)를 추가하는 것과 같은 유용한 일부 drupal 조정으로 사용자 지정 이미지를 만들었습니다.
그 외에도 나는 주로 2가지 이유로 슬릿 커스텀 nginx 이미지를 사용하고 있습니다.
Brotli 압축 지원 .
사용자 설정(php 및 nginx 이미지 모두에 대해 프로젝트 루트를 소유할 사용자가 필요함).
nginx의 구성 파일을 변경하는 것은 까다로울 수 있으므로 여기에서 안전하게 재생하기 위해 Dockerfile에서 빌드 시간에 수행했습니다.
마지막으로 다음 docker-compose 파일을 얻었습니다.
version: "3"
services:
web:
build: ./web
restart: always
ports:
- "80:80"
- "443:443"
links:
- php
- database
networks:
vpcbr:
ipv4_address: 172.28.0.101
environment:
- NGINX_PORT=80
volumes:
- ../:/var/www/html
php:
build: ./php
restart: always
container_name: d8_php
links:
- database
ports:
- "9000:9000"
volumes:
- ../:/var/www/html
networks:
vpcbr:
ipv4_address: 172.28.0.102
database:
image: mariadb:latest
restart: always
hostname: mysql
environment:
- MYSQL_ROOT_PASSWORD=root
networks:
vpcbr:
ipv4_address: 172.28.0.103
volumes:
- "./db:/var/lib/mysql"
- "./database:/etc/mysql/conf.d"
ports:
- "3307:3306"
redis:
image: redis
ports:
- "6379:6379"
networks:
vpcbr:
ipv4_address: 172.28.0.104
memcached:
image: memcached
ports:
- "11211:11211"
networks:
vpcbr:
ipv4_address: 172.28.0.105
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 172.28.0.0/16
다음으로 Drupal 구성과 모든 컨테이너를 함께 연결하는 방법에 대해 설명하겠습니다.
(SPOILER : Notice the use of the network key in the docker compose file :D)
Reference
이 문제에 관하여([시리즈] docker & nginx를 이용한 Drupal Env - 2!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hamzahasbi/series-drupal-env-using-docker-nginx-2-24i5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)