fix(content): harden secret handling examples

This commit is contained in:
yeasy
2026-06-06 00:43:52 -07:00
parent 67d5fc775a
commit 070d4d6d69
2 changed files with 19 additions and 10 deletions
+6 -4
View File
@@ -146,17 +146,19 @@ RUN if [ "$ENABLE_DEBUG" = "true" ]; then \
#### 4. 配置私有仓库 #### 4. 配置私有仓库
```docker 不要用 `ARG` `ENV` 传递仓库 tokenDocker 官方构建检查会把这类写法视为不安全因为构建参数和环境变量可能进入镜像元数据或历史记录使用 BuildKit secret mount 只在单条 `RUN` 指令期间暴露凭据
ARG NPM_TOKEN
RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc && \ ```docker
RUN --mount=type=secret,id=npm_token \
NPM_TOKEN="$(cat /run/secrets/npm_token)" && \
printf "//registry.npmjs.org/:_authToken=%s\n" "$NPM_TOKEN" > ~/.npmrc && \
npm install && \ npm install && \
rm ~/.npmrc rm ~/.npmrc
``` ```
```bash ```bash
## 构建时传入 token ## 构建时传入 token
$ docker build --build-arg NPM_TOKEN=xxx . $ docker build --secret id=npm_token,env=NPM_TOKEN .
``` ```
--- ---
+13 -6
View File
@@ -247,12 +247,19 @@ spec:
ACK 集群中创建 Secret用于拉取私有镜像 ACK 集群中创建 Secret用于拉取私有镜像
```bash ```bash
# 创建镜像拉取 Secret # 避免把真实口令写入命令历史。使用临时 Docker config 并通过标准输入登录。
kubectl create secret docker-registry acr-secret \ export DOCKER_CONFIG="$(mktemp -d)"
--docker-server=registry.cn-hangzhou.aliyuncs.com \ read -rsp "ACR token: " ACR_TOKEN; echo
--docker-username=<阿里云账户ID> \ printf "%s" "$ACR_TOKEN" | docker login registry.cn-hangzhou.aliyuncs.com \
--docker-password=<RAM访问密钥或密码> \ --username "<阿里云账户ID>" \
--docker-email=<邮箱地址> --password-stdin
kubectl create secret generic acr-secret \
--from-file=.dockerconfigjson="$DOCKER_CONFIG/config.json" \
--type=kubernetes.io/dockerconfigjson
rm -rf "$DOCKER_CONFIG"
unset ACR_TOKEN DOCKER_CONFIG
# 查看创建的 Secret # 查看创建的 Secret
kubectl get secret acr-secret kubectl get secret acr-secret