kfreiman / php-cli-docker-example
Symfony 控制台示例应用程序,使用 Docker 和 MySQL
dev-master
2018-11-28 18:41 UTC
Requires
- symfony/console: ^4.1
- symfony/orm-pack: ^1.0
This package is not auto-updated.
Last update: 2024-09-15 05:28:48 UTC
README
这是使用 Symfony 控制台和 Docker 以及数据库(DBAL 没有ORM)的基本示例。只有一个 CountDomainsCommand
,它遍历 users
表并统计使用每个电子邮件域的用户数量。
如何运行
通过 Docker Compose 运行数据库:docker-compose up -d
。它将启动 MySQL 服务器,并将方案和数据放置在项目的 mysql-dump 目录中。
自基础启动以来,构建本应用的本地 Docker 镜像。
docker build -t kfreiman/php-cli-docker-example .
注意,在 Dockerfile 中使用了 多阶段构建 来最小化容器大小。
最后,您可以运行该应用程序。
docker run \ --link=mysql_test_db:db \ --network=custom_network \ -e MYSQL_DATABASE=test_db \ -e MYSQL_USER=test_user \ -e MYSQL_PASSWORD=secret \ -e batch=3 \ kfreiman/php-cli-docker-example
要从应用程序容器访问数据库容器,您必须指定 --link
参数和来自 docker-compose.yml
的环境变量。参数 --network
是必需的,以便在 Docker Compose 的同一网络上运行容器。-e batch=3
定义了每个表查询迭代的批大小,默认为 1000
。
它将打印使用特定域的用户数量
5 domain1.com 4 domain4.com 2 domain2.com 1 domain3.com
可能的未来改进
- 使用 entrypoint 来能够运行不同的命令
- 在表很大且可能在命令执行期间发生更改的情况下,使用锁定表或 updated_at 标记
- 实现测试
- 在执行期间显示进度