madsem / phpdock
基于PHP项目的简单Docker开发环境
README
基于Alpine Linux的Docker Compose环境。
专为快速且简单的macOS PHP开发环境设计。
在10秒内(在您已下载基本镜像之后)启动新的环境
包括
php-fpm、MySql、Singlestore、Redis、Nginx、Mailhog、Composer、node、npm 和 yarn
默认使用Singlestore数据库。
本地地址
- Mailhog
- Singlestore UI
Docker配置
可以在.env.phpdock中配置Docker环境。
轻松交换镜像,并从应用程序的.env中独立配置Docker。
在.env.phpdock中使用以下任意一项来自定义您的环境
- PHP-fpm: 8.3-latest
- MySql服务器:5.7至8.x之间的任何有效mysql标签
- singlestore:始终使用最新版本
- redis:始终使用最新版本
要进一步自定义,您可以始终编辑docker-compose.yml。
安装
composer require madsem/phpdock --dev
然后运行vendor/bin/phpdock publish,将docker/文件夹和phpdock文件发布到您的项目目录。
然后您可以使用以下方式使用可执行的shell脚本
vendor/bin/phpdock <command>
创建别名
# bash alias phpdock="./vendor/bin/phpdock" # fish alias phpdock "./vendor/bin/phpdock"
启动新项目
phpdock build
这将为您的项目构建容器。
容器准备好后,运行phpdock up来启动容器。
然后您可以根据以下方式登录到app、nginx、mysql或redis服务
phpdock ssh <service name>
要停止但不销毁您的工作,请运行phpdock down,
或要销毁容器、镜像和相关卷,请运行phpdock destroy。
在配置更改后重新构建容器,请运行phpdock rebuild
# rebuild everything phpdock rebuild phpdock rebuild all # rebuild only a particular service phpdock rebuild app phpdock rebuild web
更新phpDock
composer require madsem/phpdock --dev phpdock update
这将发布新的phpdock文件,并将旧文件和docker目录追加.bak。
有关更多命令,请运行phpdock help。
对于Laravel项目的示例
使用phpDock默认配置的Laravel环境文件
# Project ENV DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=phpdock DB_USERNAME=phpdock DB_PASSWORD=secret REDIS_HOST=redis CACHE_DRIVER=redis SESSION_DRIVER=redis QUEUE_DRIVER=redis MAIL_HOST=mail MAIL_PORT=1025
MySql配置
app: build: context: ./docker/app dockerfile: Dockerfile args: - MY_PHP_VERSION=${PHP_VERSION} volumes: - php-sock:/socket - ./:/var/www/html networks: - phpdock depends_on: mysql: condition: service_healthy
mysql: build: context: ./docker/mysql dockerfile: Dockerfile args: - MY_MYSQL_VERSION=${MYSQL_VERSION} ports: - ${DB_PORT:-3306}:3306 volumes: - dbdata:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: "${DB_PASS:-secret}" MYSQL_DATABASE: "${DB_NAME:-phpdock}" MYSQL_USER: "${DB_USER:-phpdock}" MYSQL_PASSWORD: "${DB_PASS:-secret}" MYSQL_ALLOW_EMPTY_PASSWORD: "yes" networks: - phpdock healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 45s interval: 10s retries: 5
数据库管理器
phpDock基础镜像包含的扩展
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
hash
iconv
imagick
intl
json
libxml
maxminddb
mbstring
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
SimpleXML
soap
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
安装自定义PHP扩展
phpDock使用https://github.com/mlocati/docker-php-extension-installer#supported-php-extensions来安装扩展。
此包检测您的PHP版本并安装正确的版本。只需将额外的扩展或修改添加到docker/app/Dockerfile中,如下所示
RUN install-php-extensions \ csv \ grpc \ protobuf
鸣谢 
- Chris Fidao && Vessel
- Yuki Imamura && Docker Laravel
