rasodu/services

此包已被弃用且不再维护。未建议替代包。

快速Laravel服务器

安装: 76

依赖: 0

建议者: 0

安全: 0

星级: 2

关注者: 1

分支: 0

开放问题: 9

语言:Makefile

0.11.0 2017-04-23 18:20 UTC

This package is not auto-updated.

Last update: 2020-01-23 09:30:35 UTC


README

Build Status

DLEMPFast

使用预构建的docker镜像启动DLEMP服务器。这比从dockerfile构建镜像快得多。

此项目的目标是什么?

  1. 提供可丢弃的PHP开发环境。
  • 为您的每个项目提供隔离的PHP开发环境。
  • 允许开发者在项目基础上管理和版本控制PHP环境。(开发者可以轻松安装额外的PHP扩展)
  • 提供快速在单个服务器生产环境中运行PHP项目的方法,并为在生产中扩展应用程序提供清晰的路径。

您支持哪个版本的PHP?

我们支持PHP 5.6和7.0

我如何安装此软件?

  • 如果您没有现有项目,请创建一个新项目
    1. 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添加到您的项目中
    1. 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命令启动服务器
    • 一旦服务器成功启动,将更改的文件提交到您的项目。
  • 可选安装步骤
    1. /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?

  • 服务器
    1. 服务器已经为Xdebug进行了配置。无需进一步配置。
  • 主机
    1. 网络浏览器
      1. 安装Chrome。
      • 在Chrome中安装Xdebug辅助扩展。
    • 集成开发环境(我们假设您正在使用Eclipse PDT - https://wiki.eclipse.org/Debugging_using_XDebug
      1. 全局Eclipse PDT设置
        1. Eclipse PDT内置了对Xdebug的支持。无需安装任何额外的插件。
        • 添加服务器
          • Windows->首选项->PHP->服务器->新建
            • 服务器
              • 服务器名称: <项目名称>
              • 基本URL: https://webapp.dev
              • 文档根目录: <主机上的项目文件夹根目录>
            • 调试器
              • 调试器: XDebug
              • 端口: 9000
            • 路径映射
              • 服务器上的路径: /usr/share/nginx/WEBAPP
              • 本地路径(文件系统中的路径): <项目文件夹路径>
      • 项目特定Eclipse PDT设置
        1. 设置PHP解释器
          • 项目->属性->PHP->解释器
            • 勾选: 启用项目特定设置
            • PHP版本: <选择正确的PHP版本>
        • 为项目选择服务器
          • 项目->属性->PHP->调试
            • 勾选: 启用项目特定设置
            • 服务器设置
              • PHP服务器: <选择PHP服务器>
            • 编码设置
              • 调试传输编码: UTF-8
              • 调试输出编码: UTF-8
            • 默认基本URL
            • 取消勾选: 在第一行中断

如何生成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集群中运行我的应用程序?

  • 所需工具
    • 通用
      1. Docker Toolbox
    • 环境特定
      • AWS
        1. AWS CLI
      • Kubernetes
        1. kubectl
        • kompose
        • Kubernetes集群(ECS集群(ECS CLI):集群中的所有实例应具有AmazonEC2ContainerServiceforEC2Role策略)
  • 创建最终的组合compose文件(仅当您使用Kubernetes集群时)
    1. docker-compose config > compose-combined.yml
    • 在compose-combined.yml中将版本号从'2.0'更改为'2'
  • 将镜像推送到仓库
    • AWS EC2容器注册库
      1. $(aws ecr get-login)
      • docker-compose build
      • docker push <tag>:<version> //推送项目中所有自定义镜像:docker images | grep -i <COMPOSE_PROJECT_NAME>
      • docker logout
    • Google容器注册库
      1. <需要说明>
  • 创建集群
    • AWS Elastic Beanstalk
      1. 创建具有负载均衡器的多容器Docker环境的AWS Elastic Beanstalk
      • aws-elasticbeanstalk-ec2-role角色中添加策略AmazonEC2ContainerServiceforEC2Role //这将允许EC2实例访问EC2容器注册库
      • 创建特定于应用的Dockerrun.aws.json
    • 创建Google容器集群
      1. <需要说明>
  • 运行容器
    • AWS Elastic Beanstalk
      1. 在您的Elastic Beanstalk环境中上传特定于应用的Dockerrun.aws.json
    • Kubernetes集群(这些说明需要改进。)
      1. 构建镜像: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/