# 在 Docker 中运行 SS CMS

使用 Docker 容器技术可以在一分钟内快速方便的部署好 SSCMS 系统,这种部署方式减少了环境部署,可靠性强,容易维护。

# 1、获取 SSCMS 官方镜像

拉取最新版本的 SS CMS 镜像 (opens new window),运行命令:

docker pull sscms/core:latest

如果需要获取指定版本的 SS CMS 镜像 (opens new window),可以运行命令:

docker pull sscms/core:<版本号>

# 2、运行 SS CMS 容器

在当前文件夹下创建 wwwroot 目录:

mkdir wwwroot

接下来,我们使用 SQLite 本地数据库运行 SSCMS:

docker run -d \
    --name my-sscms \
    -p 80:80 \
    --restart=always \
    -v "$(pwd)"/wwwroot:/app/wwwroot \
    -e SSCMS_SECURITY_KEY=e2a3d303-ac9b-41ff-9154-930710af0845 \
    -e SSCMS_DATABASE_TYPE=SQLite \
    sscms/core:latest
  • -d 参数让容器以后台任务形式运行
  • -name 参数将容器实例命名为 my-sscms,可以更换为其他名称
  • -p 参数映射容器的80端口到宿主机的80端口,如果希望使用8080端口访问可以设置 -p 8080:80
  • -restart 参数使得容器能够自动重启,必须使用 always 选项,否则容器将无法安装及升级插件
  • -v 参数将当前文件夹下的 wwwroot 目录作为网站跟目录,从而保存 SS CMS 站点数据,其中 $(pwd) 代表当前文件夹
  • -e 参数设置容器运行环境变量,SS CMS 系统将读取环境变量,作为容器运行的参数,在此我们设置 SecurityKey 为随机的 GUID 值,数据库类型为 SQLite
  • 最后我们将容器镜像设置为之前下载的 sscms/core 镜像

上面命令将运行 SSCMS 镜像,,接下来,可以通过 http://localhost 获取 http://host-ip 访问 SSCMS 系统了。

除了将当前文件夹下的 wwwroot 目录作为站点根目录存储数据,我们也可以将镜像数据持久化存储在 Volume 中:

docker run -d \
    --name my-sscms \
    -p 80:80 \
    --restart=always \
    -v volume-sscms:/app/wwwroot \
    -e SSCMS_SECURITY_KEY=e2a3d303-ac9b-41ff-9154-930710af0845 \
    -e SSCMS_DATABASE_TYPE=SQLite \
    sscms/core:latest

此命令将自动创建名称为 volume-sscms 的 Docker Volume。

# 3、环境变量配置

可以通过环境变量配置 SSCMS 运行参数:

SSCMS_SECURITY_KEY 必填项,SSCMS 客户端与服务器端加密通讯使用的秘钥,通常为 GUID 字符串

SSCMS_DATABASE_TYPE 必填项,SSCMS 使用的数据库类型,可以为以下取值中的一种:

  • MySQL : MySQL 数据库
  • SQLServer : Microsoft SQLServer 数据库
  • PostgreSQL : PostgreSQL 数据库
  • SQLite : SQLite 数据库

SSCMS_DATABASE_HOST 数据库主机地址

SSCMS_DATABASE_PORT 数据库访问端口

SSCMS_DATABASE_USER 数据库用户名

SSCMS_DATABASE_PASSWORD 数据库密码

SSCMS_DATABASE_NAME 数据库库名

SSCMS_DATABASE_CONNECTION_STRING 数据库连接字符串

SSCMS_REDIS_CONNECTION_STRING Redis 缓存连接字符串

如果 SSCMS_DATABASE_TYPE 设置为 SQLite 本地数据库,数据库将存储在 wwwroot/sitefiles/database.sqlite 文件中,如果 SSCMS_DATABASE_TYPE 设置为其他数据库类型,则还需要设置数据库环境变量。

数据库环境变量可以通过指定 SSCMS_DATABASE_HOSTSSCMS_DATABASE_PORTSSCMS_DATABASE_USERSSCMS_DATABASE_PASSWORD 以及 SSCMS_DATABASE_NAME 进行设置,也可以通过 SSCMS_DATABASE_CONNECTION_STRING 直接设置,两种方式选择其中一种。

# 4、安装 SS CMS 系统

至此,我们可以开始正式安装 SS CMS 系统了。

TIP

如果在云服务器环境中安装,请先配置安全组,确保网站地址及端口能够被外网访问。

打开浏览器,访问地址 http://<IP地址或域名>/ss-admin/install,进入 SS CMS 系统安装界面:

勾选我已经阅读并同意此协议,进入环境检测界面:

可以看到,运行环境现在为容器,点击下一步,进入数据库设置界面:

SSCMS 系统将根据容器运行时设置的环境变量获取数据库信息,点击下一步,进入缓存设置界面:

SSCMS 系统将根据容器运行时是否设置Redis连接字符串环境变量判断缓存类型,点击下一步,进入管理员设置界面:

在管理员设置界面中设置超级管理员的用户名及密码,设置完成后点击下一步,系统将显示安装成功界面:

点击 进入管理后台 按钮进入后台,至此,SS CMS 系统安装完毕。

上次更新: 2020/11/3 上午10:21:48