creative-commoners/create-ss-demo

从当前工作目录创建演示网站

dev-master 2019-05-13 21:16 UTC

This package is auto-updated.

Last update: 2024-09-14 09:00:54 UTC


README

Build Status

一个命令行工具,使用 SilverStripe 平台 API 创建演示网站。

要求

  • PHP ^7.1
  • 使用 Docker 创建容器
  • 一个 Docker Hub 账户来存储容器标签
  • 内容快照的 SilverStripe 平台堆栈权限
  • sspak 创建快照

安装

使用 Composer 全局安装

composer global require creative-commoners/create-ss-demo dev-master

确保全局 Composer bin 文件夹在您的系统路径中。

配置

确保您已登录到您的 Docker Hub 账户

docker login

您还需要设置一个 SilverStripe 平台 API 令牌(可以在“我的个人资料”部分完成),并将其定义为环境变量

  • SS_DEMO_AUTH_USER:您的 SSP 邮箱地址
  • SS_DEMO_AUTH_KEY:您的 SSP API 令牌

确保您不要将这些信息提交到任何代码库中。

用法

您有一个本地环境准备与人共享,并且想发布它。涉及的步骤是

  • 构建并发布(build)Docker 容器
  • 创建(instantiate)演示实例
  • 完成演示实例后,销毁(destroy)演示实例

构建 Docker 容器

您不需要为项目启用 Docker,此工具将必要的 Docker 配置文件复制到您的项目中,以便将其构建为镜像。然后您可以手动删除这些文件,或者保留它们。这最终也将被自动化。

要构建容器,运行 create-ss-demo build 并提供以下参数

  • name:您的镜像名称,例如 "sprint-2019-01-02"
  • username:您的 Docker Hub 用户名,例如 "johnsmith"
  • version:为镜像打标签的版本,例如 0.1
create-ss-demo build sprint-2019-01-02 johnsmith 0.1

这将构建一个指定名称的 Docker 镜像,将其标记为指定的版本,并将其推送到 Docker Hub 上指定的用户名下。

自定义环境变量

如果您的演示网站镜像需要定义自定义环境变量,请将其添加到您正在构建的项目文件夹中的 .env 文件中。这些变量将在 SilverStripe 应用程序运行时与默认容器环境变量合并。

# File: .env
FOO=BAR

重要:由于 SilverStripe 平台需要访问并使用它进行演示构建,因此您的 Docker 镜像需要在 Docker Hub 上公开。因此,请确保您不要在 .env 文件中包含任何敏感数据。 只使用模拟值,不要存储任何 API 密钥等。

创建演示实例

一旦您有了 Docker 容器,您可以让 SilverStripe 平台使用它构建一个演示环境。您还需要一个 sspak 快照,它需要通过“快照”部分上传到 SilverStripe 平台堆栈。完成后,您需要从“快照”部分获取其数字 ID。

要请求演示实例,请使用以下参数运行 create-ss-demo instantiate

  • site_name:用于演示子域名的站点名称,例如 johnsmithsprint1(不能包含破折号等符号)
  • image:Docker Hub镜像名称和标签/版本,例如 "johnsmith/sprint-2019-01-02:01"
  • stack_name:SilverStripe平台栈代码,例如 mystack
  • snapshot_id:用于内容的SilverStripe平台sspak快照ID,例如 12846
create-ss-demo instantiate johnsmithsprint1 johnsmith/sprint-2019-01-02:0.1 mystack 12846

SilverStripe平台API将开始处理您的请求,并且命令将偶尔轮询并提供命令状态更新。完成之后,您将获得演示站点的URL和登录用户名/密码。现在可以与其他人分享。

注意:您需要在指定的SilverStripe平台栈上具有必要的权限才能执行此操作。

销毁演示站点

一旦您的演示环境不再需要,您应该关闭它以避免浪费AWS资源。为此,您可以使用以下参数运行 create-ss-demo destroy

  • demo_id:要销毁的演示站点ID
  • stack_name:SilverStripe平台栈代码,例如 mystack
create-ss-demo destroy 1123 mystack

注意:您需要在演示的原始SilverStripe平台栈上具有必要的权限才能执行此操作。