代码拉取完成,页面将自动刷新
本项目演示 Laravel CI、Docker、Lint、Tests。
本项目提供 2 种 Docker:生产环境 和 开发环境。
构建步骤:
# 默认生产环境 production
docker build -t laravel-demo:6 .
# 开发环境
docker build -t laravel-demo:6-dev --build-arg APP_ENV=local .
# 加速构建(自动修改 apt、composer、npm 的源)
docker build -t laravel-demo:6-dev --build-arg APP_ENV=local --build-arg SPEED=up .
构建结果 hub.docker.com:
docker pull sinkcup/laravel-demo:6
可切换3种运行模式 CONTAINER_ROLE: app/scheduler/queue
:
# 默认 web app
docker run --rm --name laravel_demo -e DB_CONNECTION=sqlite -t sinkcup/laravel-demo:6
# 定时任务 scheduler(cron)
docker run --rm --name laravel_demo_scheduler -e DB_CONNECTION=sqlite -e CONTAINER_ROLE=scheduler -t sinkcup/laravel-demo:6
# 队列 queue
docker run --rm --name laravel_demo_queue -e DB_CONNECTION=sqlite -e CONTAINER_ROLE=queue -t sinkcup/laravel-demo:6
细节:
config/logging.php
.routes/web.php
and routes/api.php
.只有开发环境需要 ide-helper ,那如何只在开发环境运行 composer 脚本呢?
如果在 composer.json
中加入脚本,运行这条命令会崩溃 composer install --optimize-autoloader --no-dev
.
最佳方法是:
"scripts":{
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
"if (php artisan | grep 'ide-helper:generate'); then php artisan ide-helper:generate; fi",
"if (php artisan | grep 'ide-helper:meta'); then php artisan ide-helper:meta; fi"
]
},
本项目使用 PSR12 代码规范,具体请看 phpcs.xml
。
运行 composer install
时,.git-pre-commit
会被复制到 .git/hooks/pre-commit
,本地提交时就会检查规范。
如果检查出代码不规范,可以尝试自动修复:
./lint.sh --fix
lint.sh
在 .circleci/config.yml
和 Jenkinsfile
中也被调用,所以推送和请求合并时也会检查代码规范。
运行 ./phpunit.sh
会生成这些文件:
clover.xml
: Clover XML 格式的测试覆盖率报告,你可以注册 codecov.io 获得一个 TOKEN,然后在 CI 中上传报告。storage/app/public/coverage
: HTML 格式的测试覆盖率报告,用于本地访问 http://laravel-demo.localhost/storage/coverage/
junit.xml
: JUnit XML 格式的测试执行结果,用于在 Jenkins 中收集。环境变量:
名称 | 值 |
---|---|
CODECOV_TOKEN | 可选,注册 codecov.io 来获得 |
环境变量:
名称 | 值 |
---|---|
SPEED | 可选,修改源地址用来加速构建,取值:up/down/keep |
DOCKER_USER | 可选,Docker 用户名,如果要使用私有镜像才要配置此项 |
DOCKER_PASSWORD | 可选,Docker 密码 |
DOCKER_SERVER | 可选,Docker 服务器地址 |
DOCKER_PATH_PREFIX | 可选,Docker 路径前缀 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。