Skip to content

快速参考

支持的标签和相应的 Dockerfile 链接

快速参考(续)

什么是 Silverpeas

Silverpeas 是一个协作和社交网络门户,旨在促进和利用个人、团队和组织的协作、知识共享和反馈。

可通过简单的网络浏览器或智能手机访问,我们每天都在使用 Silverpeas。它拥有约 30 个即用型应用程序,并具有会话和关系功能,使用户能够共同工作、分享知识和良好实践,总体上提高他们的相互同理心,从而提高他们的合作意愿。

Silverpeas 通常被用作专门用于协作和信息共享的内联网和外联网平台。

logo

如何使用此图像

Silverpeas 的 Docker 镜像需要以下数据库系统之一才能使用:

  • 开源、强大且推荐的 PostgreSQL 数据库系统
  • 微软 SQLServer 数据库系统
  • 甲骨文数据库系统。

Silverpeas 图像实际上仅支持前两个数据库系统;由于 Oracle JDBC 驱动程序的非自由许可问题,Silverpeas 无法默认包含这些驱动程序,因此它无法透明地将 Oracle 数据库系统用作持久性后端。

出于同样的原因,Silverpeas 的 Docker 镜像没有附带 Oracle JVM,而是附带了 OpenJDK。Silverpeas 使用 Wildfly 应用服务器作为运行时。

Silverpeas 图像使用以下环境变量来设置数据库访问参数:

  • DB_SERVERTYPE 指定要与 Silverpeas 一起使用的数据库系统:POSTGRESQL 用于 PostgreSQL,MSSQL 用于 Microsoft SQLServer,ORACLE 用于 Oracle。默认情况下,它设置为 POSTGRESQL。
  • DB_SERVER 指定数据库系统运行的 IP 地址或主机名。默认情况下,它设置为 database ,以便任何运行数据库的容器都可以使用此名称链接到 Silverpeas 容器。
  • DB_NAME 指定要与 Silverpeas 一起使用的数据库。默认情况下,它设置为 Silverpeas
  • DB_USER 指定 Silverpeas 用于访问数据库的用户标识符。默认情况下,它设置为 silverpeas (建议为每个应用程序在数据库中专用一个用户帐户)。
  • DB_PASSWORD 指定与上述用户标识符关联的密码。

这些环境变量也可以在 Silverpeas 全局配置文件 config.properties 中定义为属性(见下文)。

使用 Docker 容器中的数据库启动 Silverpeas 实例

在 Docker Hub 中,目前没有可用的 Microsoft SQLServer 的 Docker 镜像,但您会发现很多 PostgreSQL 的镜像。例如,使用官方的 PostgreSQL Docker 镜像,您可以启动一个以超级用户 postgres 和密码 mysecretpassword 初始化的 PostgreSQL 实例:

$ docker run --name postgresql -d \
    -e POSTGRES_PASSWORD="mysecretpassword" \
    -v postgresql-data:/var/lib/postgresql/data \
    postgres:12.3

我们强烈建议将包含数据库文件的目录挂载到主机上,这样在将 PostgreSQL 升级到新版本时数据不会丢失(可以使用数据卷容器代替)。有关如何启动 PostgreSQL 容器的任何信息,您可以参考其文档。

一旦数据库系统运行,就必须为 Silverpeas 创建一个数据库,并添加一个对此数据库(仅对此数据库)具有管理权限的用户;出于安全原因,建议为每个应用程序在数据库中创建一个专用用户帐户,因此也为 Silverpeas 创建一个专用用户帐户。在本文档中,默认情况下,会创建一个数据库 Silverpeas 和一个用于该数据库的用户 silverpeas 。例如:

$ docker exec -it postgresql psql -U postgres
psql (12.3 (Debian 12.3-1.pgdg100+1))
Type "help" for help.

postgres=# create database "Silverpeas";
CREATE DATABASE
postgres=# create user silverpeas with password 'thesilverpeaspassword';
CREATE ROLE
postgres=# grant all privileges on database "Silverpeas" to silverpeas;
GRANT
postgres=# \q
$

使用默认配置启动 Silverpeas 实例

最后,可以通过使用环境变量指定所需的数据库访问参数来启动 Silverpeas 实例。在示例中,数据库名为 Silverpeas ,特权用户为 silverpeas ,密码为 thesilverpeaspassword

$ docker run --name silverpeas -p 8080:8000 -d \
    -e DB_NAME="Silverpeas" \
    -e DB_USER="silverpeas" \
    -e DB_PASSWORD="thesilverpeaspassword" \
    -v silverpeas-log:/opt/silverpeas/log \
    -v silverpeas-data:/opt/silverpeas/data \
    --link postgresql:database \
    silverpeas

默认情况下, database 是 Silverpeas 用于其持久化后端的默认主机名。因此,由于 PostgreSQL 数据库在此处以别名 database 链接,我们不必使用 DB_SERVER 环境变量显式指示其主机名。Silverpeas 映像公开了 8000 端口,并且在此将该端口映射到主机的 8080 端口。

Silverpeas 随后可在 http://localhost:8080/silverpeas 访问。您可以使用管理员帐户 SilverAdmin 和密码 SilverAdmin 登录 Silverpeas。别忘了更改管理员帐户的密码。

默认情况下,会在容器内部创建一些卷,以便我们可以在主机中访问它们。(请参考 Docker 文档以找到它们。)其中 /opt/silverpeas/log/opt/silverpeas/data :第一个卷包含 Silverpeas 生成的日志,而第二个卷包含用户在 Silverpeas 中创建和管理的所有数据。由于后者在创建映像时已经创建了一个目录结构,因此如果不丢失卷的内容,则不能将主机目录挂载到容器中的 opt/silverpeas/data (挂载点会覆盖卷中预先存在的内容)。在我们的示例中,为了轻松找到这两个卷,我们分别用标签 silverpeas-logsilverpeas-data 明确地标记它们。(使用数据卷容器来映射 /opt/silverpeas/log/opt/silverpeas/data 是一个更好的解决方案。)

Silverpeas 需要一些时间才能启动,因此我们建议您查看日志以了解 Silverpeas 的完整启动过程(请参阅有关日志的部分)。

使用更精细的配置启动 Silverpeas 实例

Silverpeas 的全局配置在 /opt/silverpeas/configuration/config.properties 文件中定义,其示例可以在此处或容器目录 /opt/silverpeas/configuration/ 中找到。您可以显式创建 config.properties 文件,除了数据库访问参数(在这种情况下,不要忘记指定 DB_SERVER 属性,其值为 database )之外,还可以添加您特定的配置参数,然后使用此配置文件启动 Silverpeas 实例:

$ docker run --name silverpeas -p 8080:8000 -d \
    -v /etc/silverpeas/config.properties:/opt/silverpeas/configuration/config.properties
    -v silverpeas-log:/opt/silverpeas/log \
    -v silverpeas-data:/opt/silverpeas/data \
    --link postgresql:database \
    silverpeas

其中 /etc/silverpeas/config.properties 是主机上您自己的配置文件。出于安全原因,我们强烈建议在 config.properties 文件中使用属性 SILVERPEAS_ADMIN_LOGINSILVERPEAS_ADMIN_PASSWORD 显式设置管理员的凭据。(别忘了使用属性 SILVERPEAS_ADMIN_EMAIL 设置管理员的电子邮件地址。)

以下是此类配置文件的一个示例:

SILVERPEAS_ADMIN_LOGIN=SilverAdmin
SILVERPEAS_ADMIN_PASSWORD=theadministratorpassword
SILVERPEAS_ADMIN_EMAIM=admin@foo.com

DB_SERVERTYPE=POSTGRESQL
DB_SERVER=database
DB_NAME=Silverpeas
DB_USER=silverpeas
DB_PASSWORD=thesilverpeaspassword

CONVERTER_HOST=libreoffice
CONVERTER_PORT=8997

SMTP_SERVER=smtp.foo.com
SMTP_AUTHENTICATION=true
SMTP_DEBUG=false
SMTP_PORT=465
SMTP_USER=silverpeas
SMTP_PASSWORD=thesmtpsilverpeaspassword
SMTP_SECURE=true

在主机上使用数据库启动 Silverpeas 实例

对于在主机(或远程主机)上运行的数据库系统,其 IP 地址为 192.168.1.14,您必须在启动容器时以及通过在其全局配置文件中定义该主机来指定该主机给 Silverpeas:

$ docker run --name silverpeas -p 8080:8000 -d \
    --add-host=database:192.168.1.14 \
    -v /etc/silverpeas/config.properties:/opt/silverpeas/configuration/config.properties \
    -v silverpeas-log:/opt/silverpeas/log \
    -v silverpeas-data:/opt/silverpeas/data \
    silverpeas

其中 database 是您的 /etc/silverpeas/config.properties 文件中 DB_SERVER 参数所引用的主机名,作为运行数据库系统的主机,在此映射到该主机的实际 IP 地址。主机名添加在容器的 /etc/hosts 文件中。

对于 PostgreSQL 数据库系统,为了能够从 Silverpeas 容器中进行访问,需要进行一些配置:

  • 在文件 postgresql.conf 中,编辑参数 listen_addresses 以添加 PostgreSQL 主机的地址(在我们的示例中为 192.168.1.14

    listen_addresses = 'localhost,192.168.1.14'

  • 在文件 pg_hba.conf 中,为 Docker 子网添加一个条目

    主机所有所有 172.17.0.0/16 md5

  • 不要忘记重新启动 PostgreSQL,以便考虑更改。

使用数据卷容器

Silverpeas 产生的数据意味着是持久的,可供 Silverpeas 的下一个版本使用,并且它们必须可供其他容器(如运行 LibreOffice 的容器)访问。为此,Docker 团队建议使用数据卷容器。

在 Silverpeas 中,应用程序产生了四种类型的数据:

  • 存储在 /opt/silverpeas/log 中的日志记录
  • 用户数据和 Silverpeas 从 /opt/silverpeas/data 中的用户数据生成的数据,
  • /opt/silverpeas/xmlcomponents/workflows 中的工作流编辑器创建的工作流。

除了这些目录之外,根据您的特定需求,还可以在目录 /opt/silverpeas/configuration/jboss/opt/silverpeas/configuration/silverpeas 中添加自定义配置脚本。

目录 /opt/silverpeas/log/opt/silverpeas/data/opt/silverpeas/xmlcomponents/workflows 在 Docker 映像中均被定义为卷。

所有这些不同类型的数据对于给定的 Silverpeas 状态必须是一致的;它们形成了一个连贯的整体集合。然后,定义一个数据卷容器来收集所有这些卷是比多个共享存储卷定义更好的解决方案。使用这样的数据卷容器,您可以更轻松地备份、还原或迁移 Silverpeas 的全部数据。

为 Silverpeas 定义一个数据卷容器,例如:

$ docker create --name silverpeas-store \
    -v silverpeas-data:/opt/silverpeas/data \
    -v silverpeas-log:/opt/silverpeas/log \
    -v silverpeas-workflows:/opt/silverpeas/xmlcomponents/workflows \
    -v /etc/silverpeas/config.properties:/opt/silverpeas/configuration/config.properties \
    silverpeas \
    /bin/true

然后在 Silverpeas 容器中挂载卷:

$ docker run --name silverpeas -p 8080:8000 -d \
    --link postgresql:database \
    --volumes-from silverpeas-store \
    silverpeas

如果您必须自定义 Silverpeas 的设置或添加新的数据库定义等,则使用数据卷容器指定这些设置,以便它们可用于下一个版本的 Silverpeas,然后将像您之前的 Silverpeas 安装一样正确配置:

$ docker create --name silverpeas-store \
    -v silverpeas-data:/opt/silverpeas/data \
    -v silverpeas-log:/opt/silverpeas/log \
    -v silverpeas-properties:/opt/silverpeas/properties \
    -v /etc/silverpeas/config.properties:/opt/silverpeas/configuration/config.properties \
    -v /etc/silverpeas/CustomerSettings.xml:/opt/silverpeas/configuration/silverpeas/CustomerSettings.xml \
    -v /etc/silverpeas/my-datasource.cli:/opt/silverpeas/configuration/jboss/my-datasource.cli \
    silverpeas \
    /bin/true

日志

您可以通过查看挂载的 /opt/silverpeas/log 目录中生成的日志来跟踪 Silverpeas 的活动。

Wildfly 的输出被重定向到容器标准输出,因此可以按照以下方式进行观察:

$ docker logs -f silverpeas

Silverpeas 需要一些时间才能启动,因此我们建议您查看日志以了解 Silverpeas 的完整启动情况。

许可证

查看此映像中包含的软件的许可证信息。

Silverpeas 使用自由/开源软件。这些软件包括(但不限于):

  • MIT 许可下的库,如 JQuery 和 Angular JS。
  • Apache 2.0 许可证下的库和应用程序,如 Apache Commons 库和 Image Magick 工具。
  • GPL/LGPL 许可证下的库和应用程序,如 SWFTools、FlexPaper Flash GPL、LibreOffice、OpenJDK。

与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证的约束(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 silverpeas/ 目录中找到。

对于任何预构建的映像使用,映像用户有责任确保对此映像的任何使用都符合其中包含的所有软件的任何相关许可证。