maxlab/stacker

Stacker - Symfony 开发 Docker 快速启动套件。使用 Nginx、PHP7、Mysql、Pgsql、Mailcatcher 和 Redis 等快速在本地开始开发。

安装: 127

依赖者: 0

建议者: 0

安全: 0

星标: 364

关注者: 21

分支: 23

开放问题: 3

语言:Shell

类型:shell

1.21.7 2017-06-19 17:36 UTC

README

Frameworks a lot - he's one!

Latest Stable Version Build Status License Latest Unstable Version

简介

为什么选择 stacker?

Stacker - 这是一个包含所有开发所需内容的本地开发环境。它的好处是什么?

  1. 您无需手动配置 Web 服务器并添加到 hosts,只需克隆它并在浏览器中立即启动。这看起来像 演示
  2. 内部已经包含了90%情况下所需的所有内容。如果没有,我们会为您添加:)
  3. 为您提供了一个超级 zsh 控制台,带有自动补全和您所需的一切。有关 演示 的视频
  4. 默认情况下,提供了对 Symfony 和 Laravel 命令的自动补全。例如,输入 la5 并按两次 Tab 键,将输出可以“导航”的命令列表,您可以使用箭头选择它们
  5. 它比同类产品更快,与 Homestead 相比,它就像一只乌龟
  6. 有一个 视频课程
  7. 友好的作者,如有问题或建议
  8. 基于 Docker。您可以在安装 Docker 的任何地方安装 Stacker
  9. 扩展非常简单。只需在 docker-compose.yml 中添加几行代码即可添加您自己的镜像
  10. 只需尝试一下!

总体目标

  • 框架众多 - 它只有一个!
  • 一切都很简单,无需迁移
  • 快速开始本地开发
  • 设置无开销!复制项目并运行
  • 在 Docker 下运行,让主机保持干净!

视频演示(俄语)

要求

安装

获取 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 或其他。

对于 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 配置

  1. 转到设置 -> 语言与框架 -> PHP
  2. 点击您的解释器后面的...

我有很多的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

支持项目

您可以通过以下几种方式支持该项目

  1. 成为赞助商 - 如果您有兴趣成为赞助商,请访问Stacker的Patreon页面
  2. 发布评论 - 您可以通过在他们的社交网络上发布评论来支持项目。发送评论链接,我们将在这里发布!
  3. 购买啤酒 - Gratipay User Bountysource Donate