dockfony/dockfony

简单的Docker开发环境

安装: 25

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 105

开放性问题: 0

语言:Shell

5.1.0 2020-05-18 12:28 UTC

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_PORTMYSQL_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仍在开发中。