rasodu / services
此包已被弃用且不再维护。未建议替代包。
快速Laravel服务器
0.11.0
2017-04-23 18:20 UTC
README
DLEMPFast
使用预构建的docker镜像启动DLEMP服务器。这比从dockerfile构建镜像快得多。
此项目的目标是什么?
- 提供可丢弃的PHP开发环境。
- 为您的每个项目提供隔离的PHP开发环境。
- 允许开发者在项目基础上管理和版本控制PHP环境。(开发者可以轻松安装额外的PHP扩展)
- 提供快速在单个服务器生产环境中运行PHP项目的方法,并为在生产中扩展应用程序提供清晰的路径。
您支持哪个版本的PHP?
我们支持PHP 5.6和7.0
我如何安装此软件?
- 如果您没有现有项目,请创建一个新项目
docker-machine ssh default
(如果您不是在Linux机器上)
cd <project-dir>
docker run --rm -it --user=$(id -u):$(id -g) -v $(pwd):/usr/share/nginx/WEBAPP rasodu/cmdlaravel:7.0.1 /bin/bash
laravel new [new-project-dir]
或composer create-project laravel/laravel=5.1.<*|33> <.|new-project-dir>
- 将DLEMPFast添加到您的项目中
docker run --rm -it --user=$(id -u):$(id -g) -v $(pwd):/usr/share/nginx/WEBAPP rasodu/cmdlaravel:7.0.1 /bin/bash
composer require rasodu/services:dev-master
mkdir public
(如果不存在)mkdir -p services/docker-config
- 将
.dockerignore
文件从rasodu/DLEMP
复制到您的项目根目录 - 在您项目的'.env'(如果存在,还包括'.env.example')文件中创建以下变量列表
COMPOSE_PROJECT_NAME=<your_project_name> DLEMPFAST_CONTEXT=../../../../../ DLEMPFAST_BASE_DIR=vendor/rasodu/services/ DLEMPFAST_CONFIG_DIR=vendor/rasodu/services/ DLEMPFAST_PROJECT_DIR= DLEMPFAST_RASODU_MYSQL_VERSION=5.6.28 DLEMPFAST_RASODU_PHPFPMLARAVEL_VERSION=7.0 DLEMPFAST_RASODU_PHPFPMLARAVEL_CONFIG_DIR=vendor/rasodu/services/ DLEMPFAST_RASODU_PHPFPMLARAVEL_DOCKERFILE_DIR=vendor/rasodu/services/ COMPOSE_FILE=vendor/rasodu/services/services/composefile/phpfpmlaravel/c.yml;vendor/rasodu/services/services/composefile/phpfpmlaravel/c.override.yml;vendor/rasodu/services/services/composefile/httpbackendlaravelnginx/c.yml;vendor/rasodu/services/services/composefile/httpbackendlaravelnginx/c.override.yml;vendor/rasodu/services/services/composefile/loadbalancernginx/c.yml
chmod 777 -R bootstrap/cache/ && chmod 777 -R storage/
- 尝试使用
docker-compose up -d
命令启动服务器 - 一旦服务器成功启动,将更改的文件提交到您的项目。
- 可选安装步骤
- 将
/public/phpunit-coverage
和/public/app-documentation
添加到您的项目'.gitignore':如果您将生成phpunit代码覆盖率。
- 如果您想使用浏览器同步,请将以下代码添加到'gulpfile.js'。
mix.browserSync({ proxy: 'https://https', port: 3002, ui: { port: 3001 } });
cp "vendor/rasodu/services/com/rasodu/zz-other-references/makefiles/Makefile-Laravel" Makefile
并配置Makefile设置以适应您的项目:如果您想为您的项目创建Makefile。mkdir -p com/rasodu/phpfpmlaravel/customization && cp -a vendor/rasodu/services/com/rasodu/phpfpmlaravel/customization/. com/rasodu/phpfpmlaravel/customization/
:如果您想设置自定义配置。- 将'APP_LOG=errorlog'添加到.env和.env-example
- 将
我如何启动开发服务器?
docker-compose up -d
:启动开发服务器docker-compose stop
:停止开发服务器docker-compose down --rmi local -v
:删除容器、网络、本地镜像和卷
我如何进入cmd容器?
docker exec -it --user=$(id -u):$(id -g) <your_project_name>_cmd_1 /bin/bash
我如何自定义nginx设置?
我如何自定义PHP设置?
如何安装额外的PHP扩展?
如何在开发中使用FakeS3?
如何使用Xdebug?
- 服务器
- 服务器已经为Xdebug进行了配置。无需进一步配置。
- 主机
- 网络浏览器
- 安装Chrome。
- 在Chrome中安装Xdebug辅助扩展。
- 集成开发环境(我们假设您正在使用Eclipse PDT - https://wiki.eclipse.org/Debugging_using_XDebug)
- 全局Eclipse PDT设置
- Eclipse PDT内置了对Xdebug的支持。无需安装任何额外的插件。
- 添加服务器
- Windows->首选项->PHP->服务器->新建
- 服务器
- 服务器名称: <项目名称>
- 基本URL: https://webapp.dev
- 文档根目录: <主机上的项目文件夹根目录>
- 调试器
- 调试器: XDebug
- 端口: 9000
- 路径映射
- 服务器上的路径: /usr/share/nginx/WEBAPP
- 本地路径(文件系统中的路径): <项目文件夹路径>
- 服务器
- Windows->首选项->PHP->服务器->新建
- 项目特定Eclipse PDT设置
- 设置PHP解释器
- 项目->属性->PHP->解释器
- 勾选: 启用项目特定设置
- PHP版本: <选择正确的PHP版本>
- 项目->属性->PHP->解释器
- 为项目选择服务器
- 项目->属性->PHP->调试
- 勾选: 启用项目特定设置
- 服务器设置
- PHP服务器: <选择PHP服务器>
- 编码设置
- 调试传输编码: UTF-8
- 调试输出编码: UTF-8
- 默认基本URL
- 基本路径: /
- 自动生成的基本URL: https://webapp.dev/
- 取消勾选: 在第一行中断
- 项目->属性->PHP->调试
- 设置PHP解释器
- 全局Eclipse PDT设置
- 网络浏览器
如何生成phpunit代码覆盖率?
此项目是否支持Laravel广播事件?
此项目是否支持Laravel队列?
如何启动生产服务器?
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
:在生产服务器上启动服务docker-compose -f docker-compose.yml -f docker-compose.prod.yml build [服务名称]
:构建所有服务或重建单个服务docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d --no-deps <服务名称>
:启动单个服务- 注意:开发期间可用的所有服务在生产和环境中不一定可用。's3mock'和'cmd'在生产中不会被创建。您应该在生产中使用S3。
在生产Laravel网站上应执行哪些优化?
composer install --no-dev
composer dump-autoload --optimize
in .env file 'APP_ENV=production' and 'APP_DEBUG=false'
php artisan optimize --force
php artisan route:cache
php artisan config:cache
如何为生产服务器获取SSL证书?
docker-machine ssh <production-machine-name>
docker run --rm -it -v <project-name>_etc-letsencrypt:/etc/letsencrypt -v <project-name>_acme-challenge:/DLEMP/letsencrypt/public/.well-known/acme-challenge <project-name>_letsencrypt /bin/bash
/DLEMP/letsencrypt/bin/letsencrypt-auto --version
/DLEMP/letsencrypt/bin/letsencrypt-auto certonly --agree-tos
ln -sf /etc/letsencrypt/live/<domain>/privkey.pem /etc/letsencrypt/privkey.pem
ln -sf /etc/letsencrypt/live/<domain>/fullchain.pem /etc/letsencrypt/fullchain.pem
exit
exit
docker-compose -f docker-compose.yml -f docker-compose.prod.yml restart nginxhttps
如何在生产中扩展我的应用程序?
如何在AWS ECS集群中运行我的应用程序?
- 所需工具
- 通用
- Docker Toolbox
- 环境特定
- AWS
- AWS CLI
- Kubernetes
- kubectl
- kompose
- Kubernetes集群(ECS集群(ECS CLI):集群中的所有实例应具有AmazonEC2ContainerServiceforEC2Role策略)
- AWS
- 通用
- 创建最终的组合compose文件(仅当您使用Kubernetes集群时)
docker-compose config > compose-combined.yml
- 在compose-combined.yml中将版本号从'2.0'更改为'2'
- 将镜像推送到仓库
- AWS EC2容器注册库
$(aws ecr get-login)
docker-compose build
docker push <tag>:<version>
//推送项目中所有自定义镜像:docker images | grep -i <COMPOSE_PROJECT_NAME>- docker logout
- Google容器注册库
- <需要说明>
- AWS EC2容器注册库
- 创建集群
- AWS Elastic Beanstalk
- 创建具有负载均衡器的多容器Docker环境的AWS Elastic Beanstalk
- 在
aws-elasticbeanstalk-ec2-role
角色中添加策略AmazonEC2ContainerServiceforEC2Role
//这将允许EC2实例访问EC2容器注册库 - 创建特定于应用的
Dockerrun.aws.json
- 创建Google容器集群
- <需要说明>
- AWS Elastic Beanstalk
- 运行容器
- AWS Elastic Beanstalk
- 在您的Elastic Beanstalk环境中上传特定于应用的
Dockerrun.aws.json
- 在您的Elastic Beanstalk环境中上传特定于应用的
- Kubernetes集群(这些说明需要改进。)
- 构建镜像:
eval $(minikube docker-env)
和docker-compose build
kompose -f compose-combined.yml up
kubectl get deployments,rs,pods,services
kubectl expose deployment <deployment-name> --type=LoadBalancer --port=<port-number> [--target-port=<>]
kubectl edit svc/docker-registry
- 检查服务是否正在运行:
curl http://$(minikube ip):32599/
- 构建镜像:
- AWS Elastic Beanstalk