fix: harden cloud api port env handling
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
import { createCloudApiServer } from "../../internal/cloud/server.mjs";
|
||||
|
||||
const host = process.env.HWLAB_CLOUD_API_HOST || "0.0.0.0";
|
||||
const port = Number.parseInt(process.env.HWLAB_CLOUD_API_PORT || process.env.PORT || "6667", 10);
|
||||
const port = parsePort(process.env.HWLAB_CLOUD_API_PORT, parsePort(process.env.PORT, 6667));
|
||||
const commitId = process.env.HWLAB_COMMIT_ID || process.env.HWLAB_GIT_SHA;
|
||||
const codeAgentTimeoutMs = parseTimeout(process.env.HWLAB_CODE_AGENT_TIMEOUT_MS, 600000, {
|
||||
min: 1000,
|
||||
@@ -32,6 +32,12 @@ function parseTimeout(value, fallback, { min, max }) {
|
||||
return Math.min(Math.max(parsed, min), max);
|
||||
}
|
||||
|
||||
function parsePort(value, fallback) {
|
||||
const parsed = Number.parseInt(value || "", 10);
|
||||
if (!Number.isInteger(parsed) || parsed < 0 || parsed >= 65536) return fallback;
|
||||
return parsed;
|
||||
}
|
||||
|
||||
server.listen(port, host, () => {
|
||||
const address = server.address();
|
||||
const resolvedPort = typeof address === "object" && address ? address.port : port;
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"env": {
|
||||
"HWLAB_ENVIRONMENT": "dev",
|
||||
"HWLAB_PUBLIC_ENDPOINT": "http://74.48.78.17:16667",
|
||||
"HWLAB_CLOUD_API_PORT": "6667",
|
||||
"HWLAB_COMMIT_ID": "3ebbbbf",
|
||||
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-api:3ebbbbf",
|
||||
"HWLAB_IMAGE_TAG": "3ebbbbf",
|
||||
|
||||
@@ -47,6 +47,10 @@
|
||||
"name": "HWLAB_PUBLIC_ENDPOINT",
|
||||
"value": "http://74.48.78.17:16667"
|
||||
},
|
||||
{
|
||||
"name": "HWLAB_CLOUD_API_PORT",
|
||||
"value": "6667"
|
||||
},
|
||||
{
|
||||
"name": "HWLAB_COMMIT_ID",
|
||||
"value": "3ebbbbf"
|
||||
|
||||
@@ -183,6 +183,11 @@ node tools/hwlab-cli/bin/hwlab-cli.mjs cicd report <cd-job-id>
|
||||
Deployment,再由同一次 `kubectl apply -k deploy/k8s/dev` 从源码 desired-state
|
||||
重新创建;报告中记录 cleanup 计划和实际动作。不要把这种 cleanup 做成某个服务
|
||||
或某个 skill 的特例。
|
||||
- Kubernetes service links 会为同 namespace Service 自动注入形如
|
||||
`HWLAB_CLOUD_API_PORT=tcp://...` 的环境变量。应用入口不得直接把这类 env 当作
|
||||
数字端口解析;desired-state 应显式声明服务自身监听端口
|
||||
`HWLAB_CLOUD_API_PORT=6667`,入口代码也必须只接受合法数值端口,否则回落到
|
||||
内置默认值。
|
||||
|
||||
## DEV CD Transaction
|
||||
|
||||
|
||||
Reference in New Issue
Block a user