环境变量参考
PlantPulse 的所有配置都从环境变量这一处出发。本页是安装、运维时会遇到的变量按类别整理的参考。
本页涉及的是基础设施/部署环境变量(
PP_*·DOCKER_PP_*)。应用行为相关的属性(engine.*、websocket.*等)请参考属性参考。
1. 配置文件在哪里?
平台以 Docker Compose 技术栈运行,值的定义处有两处。
| 定义处 | 这里存放的内容 | 谁读取 |
|---|---|---|
plantpulse-platform-docker/bin/env.sh | 在主机端确定的值 —— 凭证默认值、docker 运行时、网络、由主机端计算得出的资源值 | 主机端的运维脚本 |
plantpulse-platform-docker/compose/docker-compose.yml | 容器实际看到的值 | 容器 |
env.sh六个应用(plantpulse-server-web · plantpulse-batch-web · plantpulse-warehouse · plantpulse-plugin-opcua-server · plantpulse-plugin-aasx-server · plantpulse-ha)不会 source env.sh。应用能看到的定义处只有 compose 这一个。
也就是说,只存在于 env.sh 而不在 compose 中的名称不会传达给应用,应用会以 jar/WAR 内置的默认值运行。实际上就发生过在数据湖(datalake)单独更改标识符的站点,导致五个应用继续沿用旧名称的事故(2026-08-29)。
不同层级,值的决定方式也不同。
| 层级 | 由什么决定值 |
|---|---|
plantpulse-datalake | compose 传入的值 → 容器内的 pd 以 ${VAR:-기본값} 接收。传入的值获胜 |
| 六个应用 | compose 传入的环境变量会覆盖 jar/WAR 内置默认值 |
plantpulse-certs | 只看 compose 的 PP_TLS_*。不 source 文件 |
优先级 —— 谁胜过谁
在主机端,bin/env.sh 从上到下依次运行的顺序即为优先级。
| 优先级 | 来源 | 获胜原因 |
|---|---|---|
| 1(最高) | /etc/kopens/plantpulse-platform.env(密钥 sidecar) | export VAR=값 无条件赋值,因此连 shell export 都会被覆盖 |
| 2 | /etc/kopens/platform.node.env(按节点) | 在 sidecar 之后 source,同样是无条件赋值 |
| 3 | 调用 shell 的 export | 胜过默认值的 :- —— 但仅在 1、2 未写该名称时 |
| 4(最低) | bin/env.sh 的 ${VAR:-기본값} | 仅在 unset 时 |
在安装完成的节点上,PP_PG_PASSWORD=새값 bin/up.sh 会**被静默忽略。**因为 sidecar 已经持有该名称。修改值的唯一方法是 bin/passwd.sh / bin/rotate-secret.sh。
🔑 秘密值的权威来源在 /etc/kopens/ 之下
服务账户密码(PP_PG_PASSWORD · PP_CASSANDRA_PASSWORD · PP_MQ_PASSWORD 等)和 API 密钥的实际值位于 repo 树之外的 sidecar 文件中。
| 文件 | 状态 |
|---|---|
/etc/kopens/plantpulse-platform.env | 现行权威来源 —— platform · ai · studio 三个产品的通用规约(plantpulse-<product>.env),权限 0600 |
/opt/kopens/plantpulse-platform.env | 旧路径(仅存在于 2026-08-25 ~ 08-29)—— 既不读也不写。若残留存在,安装脚本会将其还原为权威版本 |
请先用 ls -l /etc/kopens/ 确认权威版本是否存在。
sidecar 会胜过 bin/env.sh。因为 env.sh 在最上方首先 source sidecar,而其下的所有值都采用 ${VAR:-기본값} 形式。因此,只修改 env.sh 中的密码什么都不会发生——sidecar 中的旧值会继续生效。
install.sh 会将 bin/env.sh 的默认值原样载入 sidecar 中。因此在调试/试运行(commissioning)时必须替换 → 初始密码
由于 compose 以 ${PP_X:?} 的形式要求密码,若值为空,技术栈不会«带着半完成的配置启动»,而是根本不会启动。
仅修改 sidecar 并不能完成生效。像 PostgreSQL · Cassandra 这类以服务器端账户为权威来源的值,服务器端也需要一并修改,顺序出错平台将无法启动。
请使用专用流程 —— 修改密码(凭证轮换)。这是在调试阶段做一次即可完成的工作。
🔑 标记表示秘密值。请勿将原文放入 git·issue·聊天中。
1.5 容器运行时·主机资源(DOCKER_*)
这是由 bin/env.sh 确定的值。下面的资源值不是固定的默认值,而是根据主机计算得出的——因为若使用常量,可能导致小型主机根本无法启动(若 --cpus 大于实际核心数,docker 会拒绝),或在启动过程中被 OOM-kill。按主机单独指定的值始终优先。
| 变量 | 如何决定 |
|---|---|
DOCKER_CMD | docker(也可用 podman) |
DOCKER_REGISTRY | docker.kopens.io/pp —— 技术栈八个镜像的仓库前缀 |
PP_IMAGE_TAG | latest。发布版本建议使用如 2026.08 这样的固定标签 |
DOCKER_PP_CPUS | nproc(读取失败时为 8) |
DOCKER_PP_CLUSTER_CORES | DOCKER_PP_CPUS - 2,最小 4 · 最大 30。以 PP_CLUSTER_CORES 形式传给容器 |
DOCKER_PP_MEMORY | 主机 RAM 的 90%,最小 8G |
DOCKER_DATALAKE_MEMORY | 80G。若主机小于该值则为 RAM 的 90%(2026-09-04 从 64G 上调——归档器的 spark-submit 开始在该容器内运行后,在 64g 上限下发生了 OOM,实测峰值 63.9G) |
DOCKER_PW_MEMORY | 与 DOCKER_DATALAKE_MEMORY 相同的值——由于 worker 使用与数据湖相同的镜像,因此分配相同的预算 |
DOCKER_PP_DATA_DISK_NAME | 追溯支撑 / 的实际磁盘,通过 findmnt + lsblk(LVM/dm 也能追溯到物理磁盘)。失败时为 sda |
DOCKER_PP_EXTERNAL_IP | **默认为空值。**仅在 NAT 环境中为实际公网 IP |
DOCKER_PP_EXTERNAL_IP 中填入无效的 IP该值会经由 PP_SERVICE_IP 进入 TLS 证书的 SAN。只要混入一个格式不正确的 IP,openssl 就会拒绝整个扩展文件,导致一张证书都无法生成。
网络
| 变量 | 默认值 | 说明 |
|---|---|---|
DOCKER_PP_NETWORK | pp-net | docker network 名称 |
DOCKER_SUBNET | 10.99.0.0/24 | 子网(避免与其他容器网络重叠) |
DOCKER_GATEWAY | 10.99.0.1 | 网关 |
DOCKER_PP_IP | 10.99.0.100 | 数据湖的固定 IP |
各应用的内存限制 —— 由 compose 决定
为每个应用单独设置 mem_limit 是容器隔离的首要目的(OOM 隔离)。即使一个应用触及上限,其他应用及基础设施仍能存活。
| 变量 | 默认值 | 服务 |
|---|---|---|
DOCKER_SERVER_MEMORY / DOCKER_SERVER_HEAP | 16g / 12g | plantpulse-server-web |
DOCKER_BATCH_MEMORY / DOCKER_BATCH_HEAP | 4g / 3g | plantpulse-batch-web |
DOCKER_WAREHOUSE_MEMORY | 8g | plantpulse-warehouse |
DOCKER_OPCUA_MEMORY | 4g | plantpulse-plugin-opcua-server |
DOCKER_AASX_MEMORY | 4g | plantpulse-plugin-aasx-server |
DOCKER_HA_MEMORY | 2g | plantpulse-ha |
DOCKER_DATALAKE_MEMORY | 80g | plantpulse-datalake |
卷
| 变量 | 默认值 | 用途 |
|---|---|---|
DOCKER_PP_DATA_VOLUME | pp-data | 数据持久化存储 |
DOCKER_PP_TEMP_VOLUME | pp-temp | 临时数据 |
DOCKER_PP_BACKUP_VOLUME | pp-backup | 备份存储 |
DOCKER_PP_SECURITY_VOLUME | pp-security | TLS 材料 |
DOCKER_PP_PROXY_CERTS_VOLUME | pp-proxy-certs | 代理证书 |
install.sh 一次性选项
| 变量 | 效果 |
|---|---|
SKIP_OS=1 | 跳过 OS 设置 |
SKIP_LOGIN=1 | 跳过仓库登录 |
SKIP_FW=1 | 跳过防火墙设置 |
DOCKER_DATA_DIR | Docker data-root 路径(默认 /data1/docker-data) |
2. 至少需要确认的项目
在新建单机服务器安装中,实际需要动手修改的项目并不多,因为资源值是安装程序根据主机自动计算的。
| 项目 | 位置 | 备注 |
|---|---|---|
🔑 各类 *_PASSWORD · API 密钥 | bin/passwd.sh / bin/rotate-secret.sh | 调试阶段必须替换。编辑文件不会生效 |
PP_LANG | bin/env.sh | 若为韩语运维环境,请使用 ko(默认 en) |
PP_TZ | bin/env.sh | 韩国运维保持 Asia/Seoul |
DOCKER_PP_EXTERNAL_IP | bin/env.sh | 仅在 NAT 之后时。否则保持空值 |
DOCKER_DATALAKE_MEMORY | bin/env.sh | 默认 80G。主机较小时会自动降低 |
PP_* 是«容器所看到的名称»诸如 PP_HOST_IP · PP_DATA_DIR · PP_CLUSTER_CORES 这样的值是容器内部生效的名称,而在主机端决定该值的是 compose 及 bin/env.sh 中的 DOCKER_*(第1.5节)。例如核心数由 DOCKER_PP_CLUSTER_CORES 计算后以 PP_CLUSTER_CORES 传给容器。
请不要只在主机端修改 PP_CLUSTER_CORES 就期待生效——若不传入,16 vCPU 的主机会误以为存在其实并不存在的 30 个核心,导致 Kyuubi 永远无法启动。
3. 平台基础 / 网络 / 资源
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_HOME | /opt/kopens/plantpulse-platform | 安装根目录(容器内部相同) |
PP_SCHEME | PP | 部署标识方案 |
PP_MODE | MASTER | 节点角色(MASTER / worker)—— 集群化(水平扩展)轴 |
PP_TIER | FULL | 该节点要启动的层级门控(FULL / DATALAKE / APP)——与 PP_MODE 正交。FULL=基础设施+应用一体化,DATALAKE=仅基础设施,APP=仅应用(接入远程数据湖)。详情参见双节点分离安装 |
PP_OPTIONS | {} | 专用于逐个服务开关的 JSON。层级门控已迁移至 PP_TIER(参见下方 §3.3) |
PP_HOST_IP | 127.0.0.1 | 该节点的 IP |
PP_SERVICE_IP | 127.0.0.1 | 服务绑定 IP |
PP_MASTER_IP | 127.0.0.1 | worker/APP 层所指向的主(数据湖)IP。同时也是 Kafka advertised.listeners 的来源。安装 DATALAKE 层时若未指定,会自动检测为主机 IP |
PP_DATALAKE_ANCHOR | (派生) | 5 种数据存储 HOST 的默认 IP 锚点。APP 层=PP_MASTER_IP(远程数据湖),其他(FULL/DATALAKE)=PP_HOST_IP(自身 IP)。不直接设置,为派生值(参见下方 §3.2) |
PP_PUBLIC_IP | 127.0.0.1 | 对外公开 IP(NAT 环境) |
PP_DATA_DIR | /data1/pp-data | 数据根目录 |
PP_TEMP_DIR | /data1/pp-temp | 临时文件根目录 |
PP_BACKUP_DIR | /data1/pp-backup | 备份根目录 |
PP_DATA_DISK_NAME | sdb | 数据磁盘设备名 |
PP_CLUSTER_CORES | 30 | 使用核心数 |
PP_CLUSTER_MEMORY_BY_CORE | 2G | 每核心内存分配 |
PP_LANG | en | 默认语言 |
PP_TZ | Asia/Seoul | 时区(自动应用于所有 java 进程) |
3.1 PP_TIER —— 层级启动门控
PP_TIER 是决定该节点启动哪一层的门控。它与集群化轴 PP_MODE(MASTER/WORKER)完全独立。
PP_TIER | 启动的层级 |
|---|---|
FULL(默认) | 基础设施 + 应用层(单机一体化——未指定时与既有安装相同) |
DATALAKE | 仅基础设施层(Cassandra/PG/Kafka/MQTT/Redis/MinIO/Spark/Hive/TSE/CEP/Data Gateway/Temporal/Kestra/Monitor) |
APP | 仅应用层(Server/Batch/Warehouse/OPC-UA/AASX/HA —— 接入远程数据湖) |
关于将数据湖/应用拆分为两台主机的流程,请参考双节点分离安装。
3.2 PP_DATALAKE_ANCHOR —— 数据存储锚点(派生值)
概念:
PP_REDIS_HOST·PP_POSTGRES_HOST·PP_CASSANDRA_HOST·PP_MINIO_HOST·PP_TSE_HOST·PP_TEMPORAL_HOST·PP_KESTRA_HOST·PP_DATA_GATEWAY_HOST·PP_CEP_HOST的默认主机均解析为${PP_DATALAKE_ANCHOR}。
- 在
APP层,由于存储位于远程(数据湖节点),因此为PP_DATALAKE_ANCHOR = PP_MASTER_IP。- 在其他层(
FULL/DATALAKE)中,因绑定到自身 IP,因此为PP_DATALAKE_ANCHOR = PP_HOST_IP。该值由
PP_TIER自动派生,因此无需直接设置。APP节点只需指定PP_MASTER_IP,所有数据存储主机就会自动指向数据湖。
3.3 PP_OPTIONS —— 逐个服务开关
PP_OPTIONS 是逐个组件开关的 JSON。默认值为 {},未指定的键均视为 true(启用)。层级级别的启用(旧 use-infra / use-app)已迁移至 PP_TIER。
例如,若要使用外部托管的 Redis 而关闭内置的 Valkey:
export PP_OPTIONS='{"enable-valkey":false}'
可用的 enable-* 键(全部默认为 true):
enable-messaging · enable-valkey · enable-postgres · enable-cassandra · enable-spark · enable-minio · enable-tse · enable-cep · enable-workflow · enable-data-gateway · enable-sql · enable-hive · enable-gravitino · enable-kyuubi · enable-grafana · enable-monitor
4. 数据存储
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_REDIS_HOST / PP_REDIS_PORT | ${PP_DATALAKE_ANCHOR} / 6379 | Valkey/Redis(TLS 监听端口 6380) |
PP_REDIS_USER / 🔑 PP_REDIS_PASSWORD | redis / — | Redis 账户 |
PP_POSTGRES_HOST / PP_POSTGRES_PORT | ${PP_DATALAKE_ANCHOR} / 5432 | PostgreSQL 18(Percona) |
PP_PG_USER / 🔑 PP_PG_PASSWORD | plantpulse / — | PostgreSQL 账户 |
PP_CASSANDRA_HOST / PP_CASSANDRA_PORT | ${PP_DATALAKE_ANCHOR} / 9042 | Cassandra |
PP_CASSANDRA_USER / 🔑 PP_CASSANDRA_PASSWORD | cassandra / — | Cassandra 账户 |
PP_STORAGE_PORT | 9042 | 存储层客户端重用的 Cassandra 端口 |
PP_MINIO_HOST / PP_MINIO_PORT | ${PP_DATALAKE_ANCHOR} / 9000 | MinIO 对象存储 |
PP_MINIO_USER / 🔑 PP_MINIO_PASSWORD | minio / — | MinIO 账户 |
PP_MINIO_BUCKET | plantpulse | 默认存储桶 |
PP_DB_NAME | pp | PostgreSQL 数据库名 |
PP_KEYSPACE | pp | Cassandra keyspace 名称 |
PP_HIVE_DB | hive-metastore-230 | Hive 元存储 DB |
5. 消息传递
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_MQ_USER / 🔑 PP_MQ_PASSWORD | mq / — | Kafka·MQTT 公用账户(无 Kafka 专用账户) |
PP_TOPIC_PREFIX | pp | Kafka 主题前缀(pp-tag-point 等) |
PP_KAFKA_HOST / PP_KAFKA_PORT | PP_MASTER_IP / 9092 | Kafka broker |
PP_KAFKA_TLS_PORT | 9094 | Kafka 外部 TLS |
PP_KAFKA_CONTROLLER_PORT | 9093 | Kafka KRaft 控制器 |
PP_MQTT_HOST / PP_MQTT_PORT | PP_MASTER_IP / 1883 | MQTT(HiveMQ) |
PP_MQTT_TLS_PORT | 1884 | MQTT TLS |
随着浏览器实时推送改为 SSE 方式,STOMP broker 已从数据湖镜像中移除。PP_STOMP_* 变量及 61000/61004 端口**已不再提供服务。**若旧防火墙规则中仍有残留,请清理。
6. 处理·时序·分析·工作流
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_CEP_HOST / PP_CEP_PORT / PP_CEP_TLS_PORT | ${PP_DATALAKE_ANCHOR} / 7400 / 7401 | CEP 服务器 |
PP_CEP_PROTOCOL | http | CEP 连接协议。分布式/容器环境建议使用 https |
PP_CEP_CONNECT_PORT | (派生) | server-web→CEP 连接端口。随协议自动对齐(http→7400,https→7401)。若明确指定则优先使用该值 |
PP_DATA_GATEWAY_HOST / PP_DATA_GATEWAY_PORT / PP_DATA_GATEWAY_TLS_PORT | ${PP_DATALAKE_ANCHOR} / 5500 / 5501 | Data Gateway |
PP_DATA_GATEWAY_PROTOCOL | http | DGW 连接协议(内部 loopback 默认 http) |
PP_DATA_GATEWAY_CONNECT_PORT | (派生) | DGW 连接端口。随协议自动对齐(http→5500,https→5501)。若明确指定则优先使用该值 |
PP_TSE_HOST / PP_TSE_PORT / PP_TSE_TLS_PORT | ${PP_DATALAKE_ANCHOR} / 7800 / 7801 | 时序引擎(TSE)。服务器同时监听 http 7800·https 7801 |
PP_TSE_PROTOCOL | http | TSE 客户端连接协议。因是内部区段通信,默认为明文 http —— 与 TLS 主开关(PP_TLS_ENABLED)分离(2026-08) |
PP_TSE_CONNECT_PORT | (未设置) | env.sh 不导出的运维人员显式覆盖钩子。模板将其作为 ${PP_TSE_CONNECT_PORT:7800} 的回退值消费 |
PP_TSE_JDBC_SCHEME | ts | JDBC scheme。默认明文 ts(jdbc.tse.url 模板中硬编码为 ts) |
PP_TSE_USER / 🔑 PP_TSE_PASSWORD | tse / — | TSE 账户 |
PP_ANALYTICS_USER / 🔑 PP_ANALYTICS_PASSWORD | spark / — | 分析(Spark/Kyuubi 客户端)账户。与 Kyuubi 内部元存储(PP_HIVE_*)分离的独立凭证 |
PP_HIVE_HOST / PP_HIVE_PORT | PP_MASTER_IP / 9083 | Hive 元存储 |
PP_HIVE_USER / 🔑 PP_HIVE_PASSWORD | hive / — | Hive 账户 |
PP_SPARK_HOST / PP_SPARK_PORT | PP_MASTER_IP / 7077 | Spark master |
PP_KYUUBI_PORT | 10000 | Kyuubi SQL 网关 |
PP_GRAVITINO_USER / 🔑 PP_GRAVITINO_PASSWORD | gravitino / — | Gravitino 目录 |
PP_TEMPORAL_HOST / PP_TEMPORAL_PORT | ${PP_DATALAKE_ANCHOR} / 7233 | Temporal 引擎(Web UI 8233) |
PP_TEMPORAL_USER / 🔑 PP_TEMPORAL_PASSWORD | temporal / — | Temporal 账户 |
PP_KESTRA_HOST / PP_KESTRA_PORT | ${PP_DATALAKE_ANCHOR} / 8380 | Kestra 调度器 |
PP_KESTRA_ADMIN_EMAIL / 🔑 PP_KESTRA_ADMIN_PASSWORD | admin@plantpulse.io / — | Kestra 管理员 |
PP_KESTRA_DB_USER / 🔑 PP_KESTRA_DB_PASSWORD | kestra / — | Kestra 元数据 DB |
7. 插件·可观测性·Web 层
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_OPCUA_PORT / PP_OPCUA_TCP_PORT | 11004 | OPC-UA opc.tcp 协议端口 |
PP_OPCUA_TLS_PORT | 11005 | OPC-UA TLS |
PP_AAS_V3_PORT | 8090 | AAS(BaSyx V3)API。UI 为 8091,Registry/AAS 端口(4800/4801)在代码中固定,不能通过 env 修改 |
PP_GRAFANA_PORT | 3000 | Grafana 仪表盘 |
PP_GRAFANA_ADMIN_USER / 🔑 PP_GRAFANA_ADMIN_PASSWORD | admin / — | Grafana 管理员 |
PP_WEBSOCKET_PORT / PP_WEBSOCKET_PORT_SSL | 8000 / 8004 | 实时推送 WebSocket |
PP_WEBSOCKET_USER / 🔑 PP_WEBSOCKET_SERVER_PASSWORD | ws / — | WebSocket 服务器账户 |
PP_MAIL_SMTP_PORT | 25 | 报警/报告邮件发送 SMTP |
PP_MAIL_SMTP_USER / 🔑 PP_MAIL_SMTP_PASSWORD | webmaster@kopens.com / — | SMTP 账户 |
PP_MAIL_SMTP_AUTH / PP_MAIL_SMTP_STARTTLS | false / false | SMTP 认证·STARTTLS |
8. TLS / SSL
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_TLS_ENABLED | true | TLS 主开关 —— 决定服务客户端的默认协议 |
PP_DEFAULT_PROTOCOL | (派生:PP_TLS_ENABLED) | 服务客户端默认协议。PP_TLS_ENABLED=true→https,false→http。TSE 等继承此值,使协议/端口不与主开关矛盾 |
PP_TLS_CERT_DIR | /var/security/plantpulse | 证书目录 |
PP_TLS_DOMAIN | plantpulse.io | 证书域名 |
🔑 PP_TLS_KEYSTORE_PASSWORD / 🔑 PP_TLS_TRUSTSTORE_PASSWORD | — | keystore/truststore 密码(所有节点必须一致) |
PP_TLS_VALID_DAYS | 3650 | 证书有效期(天) |
PP_TLS_SAN_IPS | PP_HOST_IP,…,127.0.0.1 | 证书 SAN IP。生产环境中务必包含外部访问 IP(例如公网 IP) |
PP_TLS_SAN_DNS | localhost,<hostname>,<domain> | 证书 SAN DNS |
PP_TLS_NODE_NAMES | master worker-1 … worker-5 | 集群节点名称 |
PP_TLS_FORCE_REGENERATE | false | true 时强制重新生成证书 |
9. API 密钥 / AI 网关
均有开发用默认值(fallback)。在生产环境/客户交付时,务必通过 Docker
-e或export替换。
| 变量 | 说明 |
|---|---|
🔑 PP_API_KEY | 平台内部 API 密钥(服务器 ↔ Edge 代理认证) |
🔑 PP_DATA_GATEWAY_API_KEY | server-web → data-gateway JDBC 认证 |
🔑 PP_CEP_API_KEY | server-web → CEP 服务器 X-API-Key(须与 CEP 服务器的 cep.api.key 一致) |
🔑 PP_FLOW_WEBHOOK_API_KEY | Flow Engine 外部 webhook 认证 |
PP_AI_OPENAI_ENABLED | 启用 AI 网关(默认 false) |
PP_AI_OPENAI_BASE_URL | 兼容 OpenAI 的 LLM 代理 URL(默认 https://api.openai.com) |
🔑 PP_AI_OPENAI_API_KEY | LLM API 密钥(在 PP_AI_OPENAI_ENABLED=true 时需要) |
PP_AI_OPENAI_MODEL | 要使用的模型(默认 gpt-5-mini) |
10. 修改后应用生效的流程
cd /opt/kopens/plantpulse-platform-docker/bin
vi env.sh # 호스트 쪽 값 (DOCKER_* · PP_LANG · PP_TZ 등)
./restart.sh # 스택 재시작 — 준비될 때까지 대기 (종료 코드 0 = 쓸 수 있다)
若需要修改容器所看到的值,请在修改 compose/docker-compose.yml 后按同样的方法重启。配置模板绑定挂载在主机的 /etc/kopens/conf 上,因此可以直接在主机端编辑,即使重新安装也会被保留。
若修改了变量却未生效,请按顺序检查以下事项。
| 检查项 | 内容 |
|---|---|
| ① sidecar 是否正在生效 | 若 /etc/kopens/plantpulse-platform.env 中存在相同名称,env.sh 及 shell export 都会被其压制 → 优先级 |
| ② 该名称是否能传达给应用 | 六个应用不会读取 env.sh。若不在 compose 中,则不会传达给应用 |
| ③ 是否重启过 | 包括语言/时区在内的大多数值仅在启动时生效 |
| ④ 是否为密码 | 密码不能通过编辑文件修改 → 密码轮换 |
详细流程请参考启动指南。
env-reset.sh数据湖容器内的 env-reset.sh 是一个仅供开发使用的工具,它会 unset 所有 PP_* 后重新读取 env.sh。若在此处运行,连 compose 注入的值也会消失,恢复为镜像内置的默认值。