1我用 50 行代码写了 twig2php的活动框架
version: '3.7' services: server: build: context: ./docker/server/ volumes: - ./:/var/www/html ports: - "8888:80"
以前的文件需要 /docker/server/ 文件夹中的 Dockerfile。Docker 文件在这里。这是一个已经安装了 Apache 的 php 图像。此 Dockerfile 包括使用 php 和 zdebug 的最低要求。git 和 zip 必须与 composer 一起工作。实际上 zip 不是强制性的,.. 但是 composer 可以在安装时下载压缩的存储库。
FROM php:8.1-apache COPY 000-default.conf /etc/apache2/sites-available/000-default.conf COPY ./ /var/www/html COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer RUN apt-get update && apt-get upgrade && apt-get install -y git zip RUN pecl install xdebug && docker-php-ext-enable xdebug
这是一个非常简单的虚拟主机。
ServerAdmin webmaster@localhost DocumentRoot /var/www/html/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
这个 composer.json 文件包含启动测试驱动开发的 phpunit 和两个基本配置。
首先,声明了 bin 文件夹,这样我们就可以运行 ./bin/command 而不是 ./vendor/bin/command。
第二个 psr-4 配置为文件自动加载。
第三,phpunit 安装在开发环境中。
{ "config": { "bin-dir": "bin" }, "autoload": { "psr-4": { "": ["src/"] } }, "require-dev": { "phpunit/phpunit": "^9.5" } }
php := server docker := docker-compose compose := $(docker) --file docker-compose.yml docker_exec := $(compose) exec args = $(filter-out $@,$(MAKECMDGOALS)) up: $(docker) up -d bash: $(docker_exec) $(php) bash test: $(docker_exec) $(php) bash -c "./bin/phpunit --testdox --color" coverage: $(docker_exec) $(php) bash -c "php -dxdebug.mode=coverage ./bin/phpunit --testdox --color --coverage-html coverage" .PHONY: coverage stop: $(docker) stop rm: $(docker) rm $(php) --force build: $(docker) up -d --build rebuild: stop rm build composer: $(docker_exec) $(php) composer $(args)