配置 ThingWorx Docker
要快速启动和运行 ThingWorx Docker,请使用内容提供工具的默认设置。还可以配置 Docker Compose 文件以自定义站点的设置。本部分将介绍如何为每个内容提供工具配置 Docker Compose 文件。
配置 HTTP Secure (HTTPS) 和 HTTP
默认情况下,在提供的 ThingWorx 图像中,HTTP 处于启用状态,而 HTTPS 处于禁用状态。这对于测试和开发很有用,但不适用于生产。如果要在生产方案中使用 HTTPS 来妥善保护您的 ThingWorx Platform 安全,PTC 强烈建议您启用 HTTPS。
* 
如果启用 HTTPS,则必须提供用于启动容器的密钥存储。否则,容器将退出。
要为 Docker 映像配置 HTTPS:
1. 将包含 HTTPS 证书的密钥存储文件复制到已装载 Docker 的 ThingworxPlatform 文件夹中。卷装载量与 docker-compose 文件有关。这是在容器中存储日志和配置文件以启用持久化方案的位置。
默认情况下,必须将密钥存储命名为 keystore.jks。可以使用稍后介绍的 SSL_KEYSTORE_FILENAME 环境变量来覆盖此名称。
对于 Docker Compose 示例文件,请在此复制该文件:
./thingworx-storage/shared/ThingworxPlatform
2. 请确保将 Docker Compose 文件的环境变量 SSL_KEYSTORE_PASSWORD 设置为密钥存储的加密密码,而将 HTTPS_ENABLED 设置为 true
3. 请确保端口 8443:8443 位于 Docker Compose 文件的 ports 部分。
要启用 HTTP:
1. 在 Docker Compose 文件中,请确保将环境变量 HTTP_ENABLED 设置为 truefalse,具体取决于您的需求。
默认值为 true
2. 请确保端口 8080:8080 位于 Docker Compose 文件的 ports 部分。
* 
如果此文件中出现 PASSWORD,则必须将其替换为 ThingWorx 或数据库的密码。
H2
以下是适用于 H2 的 Docker Compose 示例文件,其中包含一些基本设置:
version: '2.2'
services:
platform:
image: thingworx/platform-h2:latest
healthcheck:
test: curl -s -w '%{http_code}' -U 'bad:creds'
localhost:8080/Thingworx/Subsystems/PlatformSubsystem | grep -w 401
interval: 15s
ports:
- "8080:8080"
- "8443:8443"
environment:
- "INITIAL_HEAP=2"
- "MAX_HEAP=4"
- "ENABLE_HTTP=true"
- "ENABLE_HTTPS=false"
# NOTE: If supplying a keystore for SSL, you must set your keystore password
#- "SSL_KEYSTORE_PASSWORD="
# NOTE: The following must be set for the Platform to start. This will be
# the initial Administrator password.
- "THINGWORX_INITIAL_ADMIN_PASSWORD="
volumes:
- "./thingworx-h2-storage/ThingworxPlatform:/ThingworxPlatform"
- "./thingworx-h2-storage/ThingworxStorage:/ThingworxStorage"
- "./thingworx-h2-storage/ThingworxBackupStorage:/ThingworxBackupStorage"
- "./thingworx-h2-storage/tomcat-logs:/opt/apache-tomcat/logs"
* 
初始内存设置为 2 GB,最大内存设置为 4 GB。
可以将以下选项添加到此文件的 environment 部分,以控制对此实例的配置:
变量名称
默认值
备注
INITIAL_HEAP
数字
2
设置实例的初始内存大小,以 GB 为单位。
MAX_HEAP
数字
4
设置实例的最大内存大小,以 GB 为单位。
ENABLE_HTTP
true/false
true
针对容器的不安全流量启用 Tomcat 的 HTTP 连接器。
ENABLE_HTTPS
true/false
false
针对容器的安全流量启用 Tomcat 的 HTTPS 连接器。还必须提供一个密钥存储并设置 SSL_KEYSTORE_PASSWORD。
SSL_KEYSTORE_PASSWORD
字符串
PASSWORD
设置 Tomcat SSL 通信所用密钥存储的密码。
SSL_KEYSTORE_BASE_PATH
字符串
/ThingworxPlatform
设置 Tomcat SSL 密钥存储的路径。如果将密钥存储存储在默认文件夹以外的容器的某个位置,则必须设置此变量。
SSL_KEYSTORE_FILENAME
字符串
keystore.jks
设置 Tomcat SSL 密钥存储的文件名。如果密钥存储的文件名并非默认名称,则必须设置此变量。
TOMCAT_SSL_PROTOCOLS
字符串
TLSv1.2
指定 Tomcat SSL 协议。如果要在 Tomcat 中覆盖已接受的 SSL 协议,请设置此变量。
SERVER_HTTP_PORT
字符串
8080
指定 Tomcat 监控的 HTTP 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
SERVER_HTTPS_PORT
字符串
8443
指定 Tomcat 监控的 HTTPS 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
DOCKER_DEBUG
true/false
false
切换容器启动时用于记录调试信息的选项。请注意,其中可能包含敏感信息。
LS_USERNAME
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录用户名。
LS_PASSWORD
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录密码。
ENABLE_BACKUP
true/false
false
切换用于备份的选项。
ENABLE_LOGGING
true/false
true
切换用于记录的选项。
ENCRYPT_CREDENTIALS
true/false
false
切换用于对 platform-settings.json 文件中的数据库和许可密码进行加密的选项。
THINGWORX_INITIAL_PASSWORD
字符串
""
为 ThingWorx 中的管理员用户设置初始密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。ThingWorx 成功启动后,此密码可能会发生更改。
EXTPKG_IMPORT_POLICY_ENABLED
true/false
false
通过扩展包上载程序来控制扩展包导入的全局启用/禁用。
EXTPKG_IMPORT_POLICY_ALLOW_JARRES
true/false
false
控制其中包含 Jar (Java) 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 jar 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSRES
true/false
false
控制其中包含 Javascript 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 javascript 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_CSSRES
true/false
false
控制其中包含 CSS 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 css 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSONRES
true/false
false
控制其中包含 JSON 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 json 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_WEBAPPRES
true/false
false
控制其中包含 WebApps 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 WebApp 资源文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_ENTITIES
true/false
false
控制其中包含不可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的不可扩展实体定义,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_EXTENTITIES
true/false
false
控制其中包含可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的可扩展实体定义,则导入将失败。
还可以将卷路径更改为特定于站点的位置。卷路径采用以下语法:
"./path_to_local_mount:/path_to_container_mount"
例如:
"/opt/ThingworxPlatform:/ThingworxPlatform"
* 
更新卷路径时,仅更改本地装载,因为内部容器的装载点一直不变。
Microsoft SQL Server
以下是适用于 Microsoft SQL Server 的 Docker Compose 示例文件,其中包含一些基本设置:
version: '2.2'
services:
mssql:
image: thingworx/mssql-db:latest
ports:
- "1433"
healthcheck:
test: /opt/mssql-tools/bin/sqlcmd -U SA -P "$${SA_PASSWORD}" -h -1
-Q "set nocount on; select serverproperty('ServerName')" | grep -w "$${HOSTNAME}"
interval: 15s
platform:
image: thingworx/platform-mssql:latest
healthcheck:
test: curl -s -w '%{http_code}' -U 'bad:creds'
localhost:8080/Thingworx/Subsystems/PlatformSubsystem | grep -w 401
interval: 15s
depends_on:
mssql:
condition: service_healthy
ports:
- "8080:8080"
- "8443:8443"
environment:
- "INITIAL_HEAP=2"
- "MAX_HEAP=4"
- "DATABASE_HOST=mssql"
- "DATABASE_PORT=1433"
- "TWX_DATABASE_USERNAME="
- "TWX_DATABASE_SCHEMA="
# NOTE: TWX_DATABASE_PASSWORD for MSSQL platform must be set to match your
# environment, or the MSSQL_DB_TWX_DATABASE_PASSWORD that you set for the
# Test MSSQL DB.
- "TWX_DATABASE_PASSWORD="
# NOTE: The following must be set for the Platform to start. This will be
# the initial Administrator password.
- "THINGWORX_INITIAL_ADMIN_PASSWORD="
- "ENABLE_HTTP=true"
- "ENABLE_HTTPS=false"
# NOTE: If supplying a keystore for SSL, you must set your keystore password
#- "SSL_KEYSTORE_PASSWORD="
volumes:
- "./thingworx-mssql-storage/ThingworxPlatform:/ThingworxPlatform"
- "./thingworx-mssql-storage/ThingworxStorage:/ThingworxStorage"
- "./thingworx-mssql-storage/ThingworxBackupStorage:/ThingworxBackupStorage"
- "./thingworx-mssql-storage/tomcat-logs:/opt/apache-tomcat/logs"
* 
初始内存设置为 2 GB,最大内存设置为 4 GB。卷装载量与 docker-compose 文件有关。这是在容器中存储日志和配置文件以启用持久化方案的位置。
可以将以下选项添加到此文件的 environment 部分,以控制对此实例的配置:
变量名称
默认值
备注
INITIAL_HEAP
数字
2
设置实例的初始内存大小,以 GB 为单位。
MAX_HEAP
数字
4
设置实例的最大内存大小,以 GB 为单位。
DATABASE_HOST
字符串
mssql
指定 SQL Server 数据库主机的主机名、服务名称或 IP 地址。
DATABASE_PORT
数字
1433
指定 SQL Server 数据库的端口号。
DATABASE_ADMIN_USERNAME
字符串
SA
指定 SQL Server 数据库的管理员用户名。
DATABASE_ADMIN_PASSWORD
字符串
PASSWORD
指定 SQL Server 数据库的管理员密码。
ENABLE_HTTP
true/false
true
针对容器的不安全流量启用 Tomcat 的 HTTP 连接器。
ENABLE_HTTPS
true/false
false
针对容器的安全流量启用 Tomcat 的 HTTPS 连接器。还必须提供一个密钥存储并设置 SSL_KEYSTORE_PASSWORD。
SSL_KEYSTORE_PASSWORD
字符串
PASSWORD
指定 Tomcat SSL 通信所用密钥存储的密码。
SSL_KEYSTORE_BASE_PATH
字符串
/ThingworxPlatform
指定 Tomcat SSL 密钥存储的路径。如果将密钥存储存储在默认文件夹以外的容器的某个位置,则必须设置此变量。
SSL_KEYSTORE_FILENAME
字符串
keystore.jks
指定 Tomcat SSL 密钥存储的文件名。如果密钥存储的文件名并非默认名称,则必须设置此变量。
TOMCAT_SSL_PROTOCOLS
字符串
TLSv1.2
指定 Tomcat SSL 协议。如果要在 Tomcat 中覆盖已接受的 SSL 协议,请设置此变量。
SERVER_HTTP_PORT
字符串
8080
指定 Tomcat 监控的 HTTP 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
SERVER_HTTPS_PORT
字符串
8443
指定 Tomcat 监控的 HTTPS 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
DOCKER_DEBUG
true/false
false
切换容器启动时用于记录调试信息的选项。请注意,其中可能包含敏感信息。
TWX_DATABASE_USERNAME
字符串
""
指定要为数据库创建的 ThingWorx 用户。必须在启动 ThingWorx Platform 之前,手动设置此变量。
TWX_DATABASE_PASSWORD
字符串
""
指定数据库的 ThingWorx 用户的密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。
TWX_DATABASE_SCHEMA
字符串
""
指定 ThingWorx 实例的架构名称。必须在启动 ThingWorx Platform 之前,手动设置此变量。
LS_USERNAME
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录用户名。
LS_PASSWORD
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录密码。
ENABLE_BACKUP
true/false
false
切换用于备份的选项。
ENABLE_LOGGING
true/false
true
切换用于记录的选项。
ENCRYPT_CREDENTIALS
true/false
false
切换用于对 platform-settings.json 文件中的数据库和许可密码进行加密的选项。
THINGWORX_INITIAL_PASSWORD
字符串
""
为 ThingWorx 中的管理员用户设置初始密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。ThingWorx 成功启动后,此密码可能会发生更改。
EXTPKG_IMPORT_POLICY_ENABLED
true/false
false
通过扩展包上载程序来控制扩展包导入的全局启用/禁用。
EXTPKG_IMPORT_POLICY_ALLOW_JARRES
true/false
false
控制其中包含 Jar (Java) 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 jar 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSRES
true/false
false
控制其中包含 Javascript 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 javascript 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_CSSRES
true/false
false
控制其中包含 CSS 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 css 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSONRES
true/false
false
控制其中包含 JSON 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 json 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_WEBAPPRES
true/false
false
控制其中包含 WebApps 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 WebApp 资源文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_ENTITIES
true/false
false
控制其中包含不可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的不可扩展实体定义,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_EXTENTITIES
true/false
false
控制其中包含可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的可扩展实体定义,则导入将失败。
还可以将卷路径更改为特定于站点的位置。卷路径采用以下语法:
"./path_to_local_mount:/path_to_container_mount"
例如:
"/opt/ThingworxPlatform:/ThingworxPlatform"
* 
更新卷路径时,仅更改本地装载,因为内部容器的装载点一直不变。
为便于测试,提供了 MS SQL Server Docker 映像。请勿使用供生产使用的 MS SQL Server Docker 映像。最好设置您自己的 MS SQL Server 环境进行生产。
要连接位于 Docker 之外的 Microsoft SQL Server 数据库,请从 Compose 文件中移除 mssql 服务,然后将以下变量添加到 platform 环境变量中:
DATABASE_ADMIN_USERNAME
DATABASE_ADMIN_PASSWORD
这些变量是 Microsoft SQL Server 数据库上已获授权的管理员帐户,用于创建首次启动时 ThingWorx 容器加载的用户、数据库或架构。有关使用外部 Microsoft SQL Server 数据库作为平台设置的 Compose 示例文件,请参阅 对 ThingWorx Docker 使用外部 Microsoft SQL Server 数据库
如果使用的是外部数据库,则可以手动安装 ThingWorx 架构,而不提供 ThingWorx Docker 容器的管理员凭据。为此,请相应地设置 DATABASE_HOSTDATABASE_PORTTWX_DATABASE_USERNAMETWX_DATABASE_PASSWORDTWX_DATABASE_SCHEMA 变量。
PostgreSQL
以下是适用于 PostgreSQL 的 Docker Compose 示例文件,其中包含一些基本设置:
version: '2.2'
services:
postgresql:
image: thingworx/postgres-db:latest
ports:
- "5432"
healthcheck:
test: pg_isready -U postgres
interval: 15s
environment:
- "TWX_DATABASE_USERNAME=thingworx"
- "TWX_DATABASE_SCHEMA=thingworx"
# NOTE: You must set the password for the pre-created ThingWorx Schema in
# this test database manually.
- "TWX_DATABASE_PASSWORD="
volumes:
- "./thingworx-postgres-storage/ThingworxPostgresqlStorage:/ThingworxPostgresqlStorage"
- "./thingworx-postgres-storage/postgres-data:/var/lib/postgresql/data"
platform:
image: thingworx/platform-postgres:latest
healthcheck:
test: curl -s -w '%{http_code}' -U 'bad:creds'
localhost:8080/Thingworx/Subsystems/PlatformSubsystem | grep -w 401
interval: 15s
depends_on:
postgresql:
condition: service_healthy
ports:
- "8080:8080"
- "8443:8443"
environment:
- "ENABLE_CLUSTERED_MODE=false"
- "INITIAL_HEAP=2"
- "MAX_HEAP=4"
- "DATABASE_HOST=postgresql"
- "DATABASE_PORT=5432"
- "TWX_DATABASE_USERNAME="
- "TWX_DATABASE_SCHEMA="
# NOTE: TWX_DATABASE_PASSWORD must be set for your environment, or to match
# TWX_DATABASE_PASSWORD in the postgresql service above.
- "TWX_DATABASE_PASSWORD="
# NOTE: The following must be set for the Platform to start. This will be
# the initial Administrator password.
- "THINGWORX_INITIAL_ADMIN_PASSWORD="
- "ENABLE_HTTP=true"
- "ENABLE_HTTPS=false"
# NOTE: If supplying a keystore for SSL, you must set your keystore password
#- "SSL_KEYSTORE_PASSWORD="
volumes:
- "./thingworx-postgres-storage/ThingworxPlatform:/ThingworxPlatform"
- "./thingworx-postgres-storage/ThingworxStorage:/ThingworxStorage"
- "./thingworx-postgres-storage/ThingworxBackupStorage:/ThingworxBackupStorage"
- "./thingworx-postgres-storage/tomcat-logs:/opt/apache-tomcat/logs"
* 
初始内存设置为 2 GB,最大内存设置为 4 GB。卷装载量与 docker-compose 文件有关。这是在容器中存储日志和配置文件以启用持久化方案的位置。
可以将以下选项添加到此文件的 environment 部分,以控制对此实例的配置:
变量名称
默认值
备注
INITIAL_HEAP
数字
2
设置实例的初始内存大小,以 GB 为单位。
MAX_HEAP
数字
4
设置实例的最大内存大小,以 GB 为单位。
DATABASE_HOST
字符串
postgressql
指定 PostgreSQL 数据库主机的主机名、服务名称或 IP 地址。
DATABASE_PORT
数字
5432
指定 PostgreSQL 数据库的端口号。
DATABASE_ADMIN_USERNAME
字符串
postgres
指定 PostgreSQL 数据库的管理员用户名。
DATABASE_ADMIN_PASSWORD
字符串
PASSWORD
指定 PostgreSQL 数据库的管理员密码。
ENABLE_HTTP
true/false
true
针对容器的不安全流量启用 Tomcat 的 HTTP 连接器。
ENABLE_HTTPS
true/false
false
针对容器的安全流量启用 Tomcat 的 HTTPS 连接器。还必须提供一个密钥存储并设置 SSL_KEYSTORE_PASSWORD
SSL_KEYSTORE_PASSWORD
字符串
PASSWORD
指定 Tomcat SSL 通信所用密钥存储的密码。
SSL_KEYSTORE_BASE_PATH
字符串
/ThingworxPlatform
指定 Tomcat SSL 密钥存储的路径。如果将密钥存储存储在默认文件夹以外的容器的某个位置,则必须设置此变量。
SSL_KEYSTORE_FILENAME
字符串
keystore.jks
指定 Tomcat SSL 密钥存储的文件名。如果密钥存储的文件名并非默认名称,则必须设置此变量。
TOMCAT_SSL_PROTOCOLS
字符串
TLSv1.2
指定 Tomcat SSL 协议。如果要在 Tomcat 中覆盖已接受的 SSL 协议,请设置此变量。
SERVER_HTTP_PORT
字符串
8080
指定 Tomcat 监控的 HTTP 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
SERVER_HTTPS_PORT
字符串
8443
指定 Tomcat 监控的 HTTPS 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
DOCKER_DEBUG
true/false
false
切换容器启动时用于记录调试信息的选项。请注意,其中可能包含敏感信息。
TWX_DATABASE_USERNAME
字符串
""
指定要为数据库创建的 ThingWorx 用户。必须在启动 ThingWorx Platform 之前,手动设置此变量。请注意,对于 PostgreSQL,TWX_DATABASE_USERNAME
应与 TWX_DATABASE_SCHEMA 匹配 (由于现有实施的限制)
不应为 postgres
TWX_DATABASE_PASSWORD
字符串
""
指定数据库的 ThingWorx 用户的密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。
TWX_DATABASE_SCHEMA
字符串
""
指定 ThingWorx 实例的架构名称。必须在启动 ThingWorx Platform 之前,手动设置此变量。请注意,对于 PostgreSQL,TWX_DATABASE_USERNAME 应与 TWX_DATABASE_SCHEMA 匹配 (由于现有实施的限制)。
TABLESPACE_LOCATION
字符串
/ThingworxPostgresqlStorage
指定表空间在数据库服务器上的位置。
IS_RDS
yes/no
no
切换用于连接 RDS PostgreSQL 数据库的选项。
LS_USERNAME
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录用户名。
LS_PASSWORD
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录密码。
ENABLE_BACKUP
true/false
false
切换用于备份的选项。
ENABLE_LOGGING
true/false
true
切换用于记录的选项。
ENCRYPT_CREDENTIALS
true/false
false
切换用于对 platform-settings.json 文件中的数据库和许可密码进行加密的选项。
THINGWORX_INITIAL_PASSWORD
字符串
""
为 ThingWorx 中的管理员用户设置初始密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。ThingWorx 成功启动后,此密码可能会发生更改。
EXTPKG_IMPORT_POLICY_ENABLED
true/false
false
通过扩展包上载程序来控制扩展包导入的全局启用/禁用。
EXTPKG_IMPORT_POLICY_ALLOW_JARRES
true/false
false
控制其中包含 Jar (Java) 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 jar 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSRES
true/false
false
控制其中包含 Javascript 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 javascript 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_CSSRES
true/false
false
控制其中包含 CSS 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 css 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSONRES
true/false
false
控制其中包含 JSON 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 json 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_WEBAPPRES
true/false
false
控制其中包含 WebApps 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 WebApp 资源文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_ENTITIES
true/false
false
控制其中包含不可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的不可扩展实体定义,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_EXTENTITIES
true/false
false
控制其中包含可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的可扩展实体定义,则导入将失败。
POSTGRES_USER
字符串
""
指定 PostgreSQL 数据库的管理员用户名。
POSTGRES_PASSWORD
字符串
""
指定 PostgreSQL 数据库的管理员密码。
POSTGRES_DB
字符串
""
指定 PostgreSQL 数据库的名称。
有关 POSTGRESQL 的附加变量及其详细信息,请参见 Docker Hub
还可以将卷路径更改为特定于站点的位置。卷路径采用以下语法:
"./path_to_local_mount:/path_to_container_mount"
例如:
"/opt/ThingworxPlatform:/ThingworxPlatform"
* 
更新卷路径时,仅更改本地装载,因为内部容器的装载点一直不变。
为便于测试,提供了 PostgreSQL Docker 映像。请勿使用供生产使用的 PostgreSQL Docker 映像。最好设置设置您自己的 PostgreSQL 环境进行生产。
要连接位于 Docker 之外的 PostgreSQL 数据库,请从 Compose 文件中移除 postgresql 服务,然后将以下变量添加到 platform 环境变量中:
DATABASE_ADMIN_USERNAME
DATABASE_ADMIN_PASSWORD
这些变量是 PostgreSQL 数据库上已获授权的管理员帐户,用于创建首次启动时 ThingWorx 容器加载的用户、数据库或架构。有关使用外部数据库作为平台设置的 Compose 示例文件,请参阅 对 ThingWorx Docker 使用外部 PostgreSQL 数据库
如果使用的是外部数据库,则可以正常手动安装 ThingWorx 架构,而不提供 ThingWorx Docker 容器的管理员凭据。为此,请相应地设置 DATABASE_HOSTDATABASE_PORTTWX_DATABASE_USERNAMETWX_DATABASE_PASSWORDTWX_DATABASE_SCHEMA 变量。
Azure SQL
* 
Microsoft Azure 中必须已经配置了一个 Azure SQL 数据库,才能将其与 ThingWorx Dockerfiles 一起使用。有关设置 AzureSQL 数据库的信息,请参阅 使用 Azure SQL Server 作为持久化方案提供工具
以下是适用于 Azure SQL 的 Docker Compose 示例文件,其中包含一些基本设置:
version: '2.2'
services:
# NOTE: There is no test database for the ThingWorx Azure SQL Persitence Provider
# as you need to create a database resource in Azure to connect to.
platform:
image: thingworx/platform-azuresql:latest
healthcheck:
test: curl -s -w '%{http_code}' -U 'bad:creds' localhost:8080/Thingworx/Subsystems/PlatformSubsystem | grep -w 401
interval: 15s
ports:
- "8080:8080"
- "8443:8443"
environment:
- "INITIAL_HEAP=2"
- "MAX_HEAP=4"
- "DATABASE_HOST=<azuresql url>"
# NOTE: Set DATABASE_ADMIN_USERNAME and DATABASE_ADMIN_PASSWORD if you want
# the docker container to create the user and database tables for ThingWorx
# based on TWX_DATABASE_USERNAME and TWX_DATABASE_PASSWORD.
# Otherwise, comment out and supply the TWX_DATABASE_USERNAME and TWX_DATABASE_PASSWORD
# for manually created user and ThingWorx database structure.
- "DATABASE_ADMIN_USERNAME=<azuresql admin user>"
- "DATABASE_ADMIN_PASSWORD=<azuresql admin password>"
# NOTE: Set TWX_DATABASE_USERNAME, TWX_DATABASE_PASSWORD TWX_DATABASE_SCHEMA for
# the thingworx database setup that will either be created by the docker image,
# or connected to if it already exists.
- "TWX_DATABASE_USERNAME="
- "TWX_DATABASE_SCHEMA="
- "TWX_DATABASE_PASSWORD="
# NOTE: The following must be set for the Platform to start. This will be
# the initial Administrator password.
- "THINGWORX_INITIAL_ADMIN_PASSWORD="
* 
初始内存设置为 2 GB,最大内存设置为 4 GB。
可以将以下选项添加到此文件的 environment 部分,以控制对此实例的配置:
变量名称
默认值
备注
INITIAL_HEAP
数字
2
设置实例的初始内存大小,以 GB 为单位。
MAX_HEAP
数字
4
设置实例的最大内存大小,以 GB 为单位。
DATABASE_HOST
字符串
不适用
指定 Azure SQL 数据库的 URL。
DATABASE_ADMIN_USERNAME
字符串
不适用
指定 Azure SQL 数据库的管理员用户名。仅当希望 docker 容器创建 TWX_DATABASE_USERNAME 并对 ThingWorx 数据库表进行初始化时,才会设置此变量。
DATABASE_ADMIN_PASSWORD
字符串
不适用
指定 Azure SQL 数据库的管理员密码。仅当希望 docker 容器创建 TWX_DATABASE_USERNAME 并对 ThingWorx 数据库表进行初始化时,才会设置此变量。
ENABLE_HTTP
true/false
true
针对容器的不安全流量启用 Tomcat 的 HTTP 连接器。
ENABLE_HTTPS
true/false
false
针对容器的安全流量启用 Tomcat 的 HTTPS 连接器。还必须提供一个密钥存储并设置 SSL_KEYSTORE_PASSWORD
SSL_KEYSTORE_PASSWORD
字符串
PASSWORD
指定 Tomcat SSL 通信所用密钥存储的密码。
SSL_KEYSTORE_BASE_PATH
字符串
/ThingworxPlatform
指定 Tomcat SSL 密钥存储的路径。如果将密钥存储存储在默认文件夹以外的容器的某个位置,则必须设置此变量。
SSL_KEYSTORE_FILENAME
字符串
keystore.jks
指定 Tomcat SSL 密钥存储的文件名。如果密钥存储的文件名并非默认名称,则必须设置此变量。
TOMCAT_SSL_PROTOCOLS
字符串
TLSv1.2
指定 Tomcat SSL 协议。如果要在 Tomcat 中覆盖已接受的 SSL 协议,请设置此变量。
SERVER_HTTP_PORT
字符串
8080
指定 Tomcat 监控的 HTTP 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
SERVER_HTTPS_PORT
字符串
8443
指定 Tomcat 监控的 HTTPS 通信端口。请注意,如果此端口发生更改,则必须更改 Compose 文件中显示的端口。
DOCKER_DEBUG
true/false
false
切换容器启动时用于记录调试信息的选项。请注意,其中可能包含敏感信息。
TWX_DATABASE_USERNAME
字符串
""
指定要为数据库创建的 ThingWorx 用户。必须在启动 ThingWorx Platform 之前,手动设置此变量。
TWX_DATABASE_PASSWORD
字符串
""
指定数据库的 ThingWorx 用户的密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。此变量还必须符合 Azure SQL 数据库的密码策略。有关详细信息,请参阅 密码策略
TWX_DATABASE_SCHEMA
字符串
""
指定 ThingWorx 实例的架构名称。必须在启动 ThingWorx Platform 之前,手动设置此变量。
LS_USERNAME
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录用户名。
LS_PASSWORD
字符串
""
指定用于获取 ThingWorx 许可证的 PTC 登录密码。
ENABLE_BACKUP
true/false
false
切换用于备份的选项。
ENABLE_LOGGING
true/false
true
切换用于记录的选项。
ENCRYPT_CREDENTIALS
true/false
false
切换用于对 platform-settings.json 文件中的数据库和许可密码进行加密的选项。
THINGWORX_INITIAL_PASSWORD
字符串
""
为 ThingWorx 中的管理员用户设置初始密码。必须在启动 ThingWorx Platform 之前,手动设置此变量。ThingWorx 成功启动后,此密码可能会发生更改。
EXTPKG_IMPORT_POLICY_ENABLED
true/false
false
通过扩展包上载程序来控制扩展包导入的全局启用/禁用。
EXTPKG_IMPORT_POLICY_ALLOW_JARRES
true/false
false
控制其中包含 Jar (Java) 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 jar 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSRES
true/false
false
控制其中包含 Javascript 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 javascript 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_CSSRES
true/false
false
控制其中包含 CSS 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 css 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_JSONRES
true/false
false
控制其中包含 JSON 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 json 文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_WEBAPPRES
true/false
false
控制其中包含 WebApps 资源的扩展包的导入权限。如果值为 false 且扩展包中包含 WebApp 资源文件,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_ENTITIES
true/false
false
控制其中包含不可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的不可扩展实体定义,则导入将失败。
EXTPKG_IMPORT_POLICY_ALLOW_EXTENTITIES
true/false
false
控制其中包含可扩展实体定义的扩展包的导入权限。如果值为 false 且扩展包中包含除扩展包实体以外的可扩展实体定义,则导入将失败。
还可以将卷路径更改为特定于站点的位置。卷路径采用以下语法:
"./path_to_local_mount:/path_to_container_mount"
例如:
"/opt/ThingworxPlatform:/ThingworxPlatform"
* 
更新卷路径时,仅更改本地装载,因为内部容器的装载点一直不变。