Иногда для тестирования какой-либо библиотеки или шаблона требуется быстро развернуть отдельное окружение для разработки. Данная заготовка PHP-проекта как раз предназначена для таких задач. Она включает в себя PHP (+xDebug), NGINX и MySQL. Репозиторий на GitHub.
Основные файлы
docker-compose.ymlversion: '3.7' services: nginx: image: nginx volumes: - ./:/app - ./docker/nginx/default.nginx:/etc/nginx/conf.d/default.conf ports: - "80:80" depends_on: - php networks: - default php: build: context: ./docker/php volumes: - ./:/app - ./docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini environment: - PHP_IDE_CONFIG=serverName=mytestservername db: image: mysql:5.7 restart: always environment: - MYSQL_DATABASE=my_database_name - MYSQL_USER=my_user_name - MYSQL_PASSWORD=my_user_password - MYSQL_ROOT_PASSWORD=my_root_password - MYSQL_ROOT_HOST:% ports: - '3306:3306' expose: - '3306' volumes: - ./docker/mysql:/var/lib/mysql networks: - default networks: default: driver: bridge
{ "name": "vendor-name/package-name", "type": "project", "description": "Description of the project.", "license": "MIT", "require": {}, "require-dev": {}, "autoload": { "psr-4": { "App\\": "src/" } }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } } }
FROM php:8.0-fpm RUN apt-get update && apt-get install -y \ libzip-dev \ zip \ && docker-php-ext-configure zip \ && docker-php-ext-install zip \ && docker-php-ext-install mysqli RUN pecl install xdebug \ && docker-php-ext-enable xdebug COPY --from=composer:latest /usr/bin/composer /usr/bin/composer WORKDIR /app
[xdebug] xdebug.mode = debug xdebug.client_host = host.docker.internal
server { listen 80; root /app/public; index index.php; location / { try_files $uri /index.php$is_args$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } location ~ /\.ht { deny all; } }
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.