gpt4 book ai didi

javascript - Docker:为什么从 .env 传递的变量即使从 .env 中删除并重建后仍会留在容器中

转载 作者:行者123 更新时间:2023-11-30 06:12:49 27 4
gpt4 key购买 nike

我试图理解为什么当我从我的 .env 文件中明确删除或注释掉它们时,我的 Docker 容器中的 env 变量仍然出现。我是 Docker 的新手,不知道这是预期的行为还是异常。

我的系统设置方式是,我在本地启动 Azure 的 IoT Edge 服务器实例(通过 deployment.template.json),它构建 Docker 容器并使用关联的 .env 文件。

现在让我困惑的是,如果我要完全停止服务器(而不是暂停),从 .env 文件中注释掉/删除变量,重新启动服务器,并检查容器( docker container inspect),我仍然看到变量名称和值。我还在停止服务器后使用 docker system prune -a --volumes 来 trim 我的系统和卷,然后重新启动服务器只看到仍然列出的变量。

为了以防万一,在我的 deployment.template.json 中,我将我的变量作为 MY_VAR=${MY_VAR} 传递。然后在我的 .env 文件中,我将变量设置为 MY_VAR=abc123

来 self 的 Dockerfile:

# -------------
# Build Sources
# -------------
FROM node:10-alpine as builder

# Install additional git and openssh dependencies and make sure GitLab domain is accepted by SSH
RUN apk add --no-cache openssh git curl \
&& mkdir /root/.ssh/ \
&& touch /root/.ssh/known_hosts \
&& ssh-keyscan gitlab.com github.com >> /root/.ssh/known_hosts

WORKDIR /app

# Install app dependencies
RUN npm i -g typescript --no-cache --silent
COPY package*.json ./
RUN npm ci --only=production --silent

# Copy sources and build
COPY . .
RUN npm run build

# ----------------
# Production Image
# ----------------
FROM node:10-alpine
RUN apk add --no-cache curl

WORKDIR /app
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/dist /app/dist
COPY . .

USER node
CMD ["node", "dist/index.js"]

最佳答案

您可以对您的容器运行“docker inspect”并查看在 docker create 选项中定义了哪些环境变量。

您还可以在 Azure 门户中检查 docker 创建选项。

关于javascript - Docker:为什么从 .env 传递的变量即使从 .env 中删除并重建后仍会留在容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57898656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com