gbmcarlos/skellington


README

此骨架允许您在Docker容器中运行一个完整的Laravel或Lumen应用程序,完全开箱即用,并通过环境变量进行配置。

功能

  • 作为Docker容器运行:一个依赖,一个工具,Docker。
  • 基于Lumen 7的应用程序。
  • 支持Xdebug
  • 使用Make运行
    • makemake run将以Web服务运行项目
    • make command ARGS={your command}将以Artisan命令执行您的参数
  • 使用环境变量配置运行时环境
    • 使用XDEBUG_环境变量在本地调试

如何安装它

  • curl -o- -s -L https://gbmcarlos.com/skellington.sh | bash
  • 开始工作

设置

要求

  • Docker

环境变量

每个项目都从文件src/.env中读取其环境变量,该文件未通过git跟踪在仓库中。所需环境变量的列表保存在文件src/.env.example中。

Crossbow

此项目将gbmcarlos/toolkit作为库使用,该库作为git子模块安装。

开发

Web服务

当在Web服务上工作时,请使用makemake logs。此脚本将

  • 构建Docker镜像
  • 运行Docker容器,挂载源和vendor文件夹的卷。这将
    • 使依赖项(仅在容器内安装)对您的IDE可见。
    • 使那些文件夹的所有更改立即在容器内反映出来
  • 启动Web服务器
  • 跟踪容器的输出

后台进程

当在后台进程上工作时,请使用make command ARGS={your command}。此脚本将执行与make logs相同的操作,但不会启动Web服务器,而是使用指定的Artisan命令和给定选项运行。例如

./local/run.sh my-command

配置环境变量

这些环境变量用于配置项目的构建和运行方式,它们在Dockerfile中具有针对生产优化的默认值。Makefile提供了针对本地开发优化的默认值,该值覆盖了Dockerfile中的值。

APP_PORT=8000 BASIC_AUTH_ENABLED=true BASIC_AUTH_USERNAME=user BASIC_AUTH_PASSWORD=secure_password XDEBUG_ENABLED=true make

运行命令

要运行您的Web服务容器内的任意命令,您可以使用

docker exec -it {container-name} bash -c "{command}"

或者您可以通过以下方式在容器中执行交互式终端

docker exec -it {container-name} bash

安装新包

安装新包时,请通过在容器内运行composer require {package}让Composer选择确切的版本(请参阅“运行命令”部分)。然后从容器中提取composer.jsoncomposer.lock(请参阅“更新依赖项”部分)。

更新依赖项

要更新依赖项,请在Web服务容器内运行composer update(请参阅“运行命令”部分)。然后使用以下方式提取composer.lock文件

docker cp {container-name}:/var/task/composer.lock .

更新NPM依赖项(仅限Laravel)

要更新NPM依赖项,请在Web服务容器内运行npm update(请参阅“运行命令”部分)。然后使用以下方式提取package-lock.json文件

docker cp {container-name}:/var/www/package-lock.json .

然后您可以将结果复制到您的.env中,作为变量APP_KEY的值

支持Xdebug

即使项目在Docker容器中运行,它仍然支持使用Xdebug进行调试。通过告诉Xdebug您的IDE的远程位置,并配置它以监听某个端口,它们可以相互通信。

使用XDEBUG_环境变量来配置您的项目调试。本地启动脚本中的默认值针对Mac上的PhpStorm进行了优化。

Mac上的Xdebug for PhpStorm

查看此文档以配置您的IDE。使用XDEBUG_APP_NAME环境变量以及路径映射

  • "src": /var/task/src
  • "vendor": /opt/vendor

技术栈

许可证

本项目受MIT许可证的条款约束。