开发者社区 > 云原生 > 容器服务 > 正文

在容器服务ACK中设置的env变量生效了,但是程序为什么还是访问的dockerfile文件中的变量?

在容器服务ACKdeployment中设置的env变量生效了,但是程序还是访问的dockerfile文件中的变量,为什么?lQLPJwnImMffty_NAw7NBIGwEtpBhJZPGkcFUW3zegCrAA_1153_782.png
然后它访问的后端接口就是VUE_APP_BASE_URL ,是dockerfile里的值

展开
收起
三分钟热度的鱼 2023-11-30 16:15:16 31 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果在容器服务 ACK 中设置了环境变量,但程序仍然访问 Dockerfile 文件中定义的变量,可能是由于以下几个原因:

    1. 容器镜像构建过程中的缓存:当构建容器镜像时,Docker 在构建过程中会使用缓存来提高构建速度。如果你在 Dockerfile 中定义了环境变量,并且构建过程之前的层没有改变,那么 Docker 可能会继续使用之前缓存的值。为了解决这个问题,可以尝试使用 --no-cache 参数重新构建镜像,以确保最新的环境变量值被正确应用。

    2. 容器启动命令中的环境变量覆盖:有时候,在容器启动命令中指定的环境变量会覆盖 Dockerfile 中定义的环境变量。例如,通过 Kubernetes 的环境变量配置或者容器实例的环境变量设置来覆盖环境变量值。请确保在容器启动的上下文中,没有其他地方对相同的环境变量进行了覆盖。

    3. 程序内部的默认值:有些程序在没有明确设置特定环境变量时,会使用内部的默认值作为回退选项。这意味着即使你在容器中设置了环境变量,程序仍然可能使用自己的默认值。在这种情况下,你需要查看程序的文档或配置文件,了解如何正确设置环境变量。

    2023-11-30 21:48:15
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    从Docker到容器服务 立即下载
    基于阿里云容器服务 实现Serverless服务 立即下载
    容器加速企业创新阿里云容器服务 立即下载