creative-commoners / create-ss-demo
从当前工作目录创建演示网站
Requires
- php: >=7.1.0
- guzzlehttp/guzzle: ^6.3
- symfony/console: ^3.0 || ^4.0
- symfony/filesystem: ^3.0 || ^4.0
- symfony/process: ^3.0 || ^4.0
Requires (Dev)
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-14 09:00:54 UTC
README
一个命令行工具,使用 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
:要销毁的演示站点IDstack_name
:SilverStripe平台栈代码,例如mystack
create-ss-demo destroy 1123 mystack
注意:您需要在演示的原始SilverStripe平台栈上具有必要的权限才能执行此操作。