maxlab / stacker
Stacker - Symfony 开发 Docker 快速启动套件。使用 Nginx、PHP7、Mysql、Pgsql、Mailcatcher 和 Redis 等快速在本地开始开发。
1.21.7
2017-06-19 17:36 UTC
README
简介
为什么选择 stacker?
Stacker - 这是一个包含所有开发所需内容的本地开发环境。它的好处是什么?
- 您无需手动配置 Web 服务器并添加到 hosts,只需克隆它并在浏览器中立即启动。这看起来像 演示
- 内部已经包含了90%情况下所需的所有内容。如果没有,我们会为您添加:)
- 为您提供了一个超级 zsh 控制台,带有自动补全和您所需的一切。有关 演示 的视频
- 默认情况下,提供了对 Symfony 和 Laravel 命令的自动补全。例如,输入 la5 并按两次 Tab 键,将输出可以“导航”的命令列表,您可以使用箭头选择它们
- 它比同类产品更快,与 Homestead 相比,它就像一只乌龟
- 有一个 视频课程
- 友好的作者,如有问题或建议
- 基于 Docker。您可以在安装 Docker 的任何地方安装 Stacker
- 扩展非常简单。只需在 docker-compose.yml 中添加几行代码即可添加您自己的镜像
- 只需尝试一下!
总体目标
- 框架众多 - 它只有一个!
- 一切都很简单,无需迁移
- 快速开始本地开发
- 设置无开销!复制项目并运行
- 在 Docker 下运行,让主机保持干净!
视频演示(俄语)
要求
- 安装 Docker
- 安装 Docker Compose > 1.8.0
安装
获取 Stacker
$ composer create-project maxlab/stacker
# OR
$ git clone git@github.com:Maxlab/stacker.git
在 Stacker 目录下运行
# make ./workspace folder and make a symbolic link to your folder with all your projects $ mkdir workspace && ln -s /your_path/to_all_your_own_projects ./workspace # copy .env.dist to .env and change it $ cp .env.dist .env $ docker-compose build && docker-compose up -d && docker-compose ps $ mv ./test ./workspace
设置本地 DNS 服务器
- Linux /etc/resolv.conf - Mac System Settings - Windows Network Adapter Setting
将您的本地 DNS 服务器设置为 127.0.0.1,为了防止 dnsmasq 运行,您需要 设置第二个 DNS 服务器。例如 8.8.8.8 或其他。
-
然后在您的浏览器中打开 http://test.php.dev/
对于 SSH
将您的 ssh 密钥复制到 workspace 文件夹
$ cp -R ~/.ssh ~/www/docker/stacker/workspace
移动您的项目
- 将您的项目添加到 workspace 文件夹
./workspace/<customer>/<projectname>(无需重新启动,这会立即生效) - 在您的浏览器中打开 http://customer.project.dev/(如果您没有 dnsmasq,您需要手动添加 hosts 文件)
在船上
- mailcatcher -> schickling/mailcatcher:latest(所有发出的邮件都发送到 http://mail.dev/)
- nginx -> nginx:1.10.1
- elasticsearch -> elasticsearch:5
- mysql -> mysql:5.7
- pgsql -> postgres:9.6
- php7xdebug -> php:7.1 + xdebug
- dnsmasq -> dnsmasq:latest
- php5apache -> php:5apache(用于旧版本)
- php7console -> stacker console
- redis -> redis:3.0
控制台
- ZSH + oh-my-zsh
- 前端:nodejs、gem、npm、webpack、bower、gulp、uglify-js、uglifycss
- 后端:composer、php、phpunit、symfony、symfony-autocomplete、Yii2 autocomplete
- 自动化部署:dep (Deployer)
常见问题解答(FAQ)
项目中配置文件中哪些设置是必要的?
- 数据库
- 您可以使用
db配置您的应用程序中的数据库,使用pgsql配置PostgreSQL(文件将保存在mysql目录中,因此容器销毁或重建后将被保存)。
# Example for mysql parameters: database_host: mysql database_port: 3306 database_name: sf database_user: root database_password: root # Example for pgsql parameters: database_host: pgsql database_port: 5433 database_name: sf database_user: postgres database_password: postgres # Example for redis parameters: database_host: redis database_port: 6379
- 您可以使用
有哪些外部端口正在监听镜像?
- 这很简单。为了方便起见,数据库的外部端口加一。例如,MySQL监听端口3306 + 1 = 3307,依此类推...
- 更多信息请查看文件docker-compose.yml
Xdebug + PhpStorm 配置
- 观看这个视频(俄语)
- 转到设置 -> 语言与框架 -> PHP
- 点击您的解释器后面的...
我有很多的Symfony项目,能否为它们创建符号链接?
- 是的!这更快、更简单,而且不需要从常规位置移动文件夹。
- 在您的项目目录中创建一个文件夹,并将所有项目从Symfony代码复制到该文件夹。现在,在Stacker目录中创建到您的项目目录的链接,删除目录
./workspace并将链接重命名为workspace - 就这么简单!现在,您可以通过浏览器访问所有的Symfony项目。
如何在控制台中联系任何Staker实例?
您可以这样做
$ /your_path/to_stacker_folder/bin/stacker console
但是,这样做会更好
# for bash $ echo 'export PATH=/your_path/to_stacker_folder/bin:$PATH' >> ~/.bashrc && source ~/.bashrc # for ~/.zshrc $ echo 'export PATH=/your_path/to_stacker_folder/bin:$PATH' >> ~/.zshrc && source ~/.zshrc # then restart console and run $ stacker console
Symfony 完整性
$ stacker console $ cd to_symfony_folder $ sf [tab*2] # for sf3 completion OR sf2 for sf2 completion
Laravel5 完整性
$ stacker console $ cd to_symfony_folder $ la5 [tab*2]
命令
$ stacker usage # for list available commands $ stacker console # for enter to console $ stacker logs <cont_name> -f # for logs stream container $ stacker build && stacker down && stacker up && stacker ps # for full rebuild
支持项目
您可以通过以下几种方式支持该项目
- 成为赞助商 - 如果您有兴趣成为赞助商,请访问Stacker的Patreon页面
- 发布评论 - 您可以通过在他们的社交网络上发布评论来支持项目。发送评论链接,我们将在这里发布!
- 购买啤酒 -
