dockfony / dockfony
简单的Docker开发环境
README
Docker,但针对Symfony
分支
此存储库是从 shipping-docker/vessel
分支的,其网站可在此找到:https://vessel.shippingdocker.com。
他们完成了出色的作品,而这个存储库只是将处理方式转换为适用于Symfony。所有的赞誉都归功于他们。
安装
Dockfony类似于Vessel,是一组文件,用于为每个项目设置基于Docker的本地开发环境。
它是Symfony Recipes (Contrib)系统的一部分,该系统为您设置了大量的文件。但是,您需要启用contrib存储库(见下文)。
这就是使用它的全部内容
composer config extra.symfony.allow-contrib true. # Optional, but recommended: composer req --dev "dockfony/dockfony:^5.0" ./dockfony start
在您的浏览器中转到https://
,查看您的Symfony网站!
环境变量
以下环境变量是运行所必需的,或者如果允许第三方贡献者,将由Symfony Flex创建。
DB_DATABASE=symfony DB_USERNAME=symfony DB_PASSWORD=secret REDIS_HOST=redis REDIS_PORT=6379
多个环境
Dockfony会尝试绑定到您机器上的80和3306端口,因此您只需在浏览器中转到https://
即可。
但是,如果您运行了多个Dockfony实例,启动时会遇到错误;每个端口只能使用一次。为了解决这个问题,可以通过设置环境变量APP_PORT
和MYSQL_PORT
以不同的端口来使用每个项目,有如下两种方式
在.env
文件中
APP_PORT=8080
MYSQL_PORT=33060
或者当启动Dockfony时
APP_PORT=8080 MYSQL_PORT=33060 ./dockfony start
然后您可以在https://:8080
查看您的项目,并从端口33060
本地访问数据库;
常见命令
以下是一些您可以使用的内置帮助器的列表。任何在dockfony
脚本中未定义的命令将默认传递给docker-compose
命令。如果没有使用任何命令,它将运行docker-compose ps
以列出此环境的运行容器。
显示Dockfony版本或帮助
# shows Dockfony current version ./dockfony --version # or [ -v | version ] # shows Dockfony help ./dockfony --help # or [ -H | help ]
启动和停止Dockfony
# Start the environment ./dockfony start ## This is equivalent to ./dockfony up -d # Stop the environment ./dockfony stop ## This is equivalent to ./dockfony down
开发
# Use composer ./dockfony composer <cmd> ./dockfony comp <cmd> # "comp" is a shortcut to "composer" # Run phpunit tests ./dockfony test ## Example: You can pass anything you would to phpunit to this as well ./dockfony test --filter=some.phpunit.filter ./dockfony test tests/Unit/SpecificTest.php # Run npm ./dockfony npm <cmd> ## Example: install deps ./dockfony npm install # Run yarn ./dockfony yarn <cmd> ## Example: install deps ./dockfony yarn install # Run gulp ./dockfony gulp <cmd>
Docker命令
如前所述,任何未被识别为内置命令的内容都将作为docker-compose
命令的参数使用。这里有一些有用的技巧
# Both will list currently running containers and their status ./dockfony ./dockfony ps # Check log output of a container service ./dockfony logs # all container logs ./dockfony logs app # nginx | php logs ./dockfony logs mysql # mysql logs ./dockfony logs redis # redis logs ## Tail the logs to see output as it's generated ./dockfony logs -f # all logs ./dockfony logs -f app # nginx | php logs ## Tail Symfony Logs ./dockfony exec app tail -f /var/www/html/var/log/symfony.log # Start a bash shell inside of a container # This is just like SSH'ing into a server # Note that changes to a container made this way will **NOT** # survive through stopping and starting the Dockfony environment # To install software or change server configuration, you'll need to # edit the Dockerfile and run: ./dockfony build ./dockfony exec app bash # Example: mysqldump database "homestead" to local file system # We must add the password in the command line this way # This creates files "homestead.sql" on your local file system, not # inside of the container # @link https://serversforhackers.com/c/mysql-in-dev-docker ./dockfony exec mysql mysqldump -u root -psecret symfony > symfony.sql
包含什么?
此项目的目标是简单。它包括
这是如何工作的?
如果您不熟悉Docker,请尝试这个Docker in Development课程,该课程解释了如何构建此结构的重要主题。
如果您想了解此工作流程是如何开发的,请查看Shipping Docker,并注册免费课程模块,该模块解释了构建此Docker工作流程。
支持的系统
Dockfony需要Docker,并且目前仅支持Windows、Mac和Linux。
Windows需要运行Hyper-V。支持使用Git Bash(MINGW64)和WSL。原生Windows仍在开发中。