开发者社区 > 云原生 > Serverless > 正文

阿里云Serverless 中怎么取不到 GROOT_ENV 这个环境变量 有知道的嘛?

阿里云Serverless 中s build -t s.pre.yaml --custom-env '{"GROOT_ENV": "test"}' --dockerfile ./code/Dockerfile

dockerfile 里怎么取不到 GROOT_ENV 这个环境变量 有知道的嘛?

展开
收起
小小鹿鹿鹿 2023-11-13 18:55:07 51 0
2 条回答
写回答
取消 提交回答
  • 在使用s build命令构建镜像时,可以通过--custom-env参数来设置环境变量。但是需要注意的是,这个环境变量是在构建镜像的过程中设置的,它并不会被写入最终的镜像中。因此,你在Dockerfile中是无法直接获取到这个环境变量的。

    如果你想在Dockerfile中使用这个环境变量,你可以使用以下的方法:

    1. Dockerfile中,你可以使用ARG指令来定义一个变量,然后在构建镜像的时候,通过--build-arg参数来设置这个变量的值。例如:
    ARG GROOT_ENV
    RUN echo $GROOT_ENV
    

    然后,在构建镜像的时候,你可以这样设置:

    s build -t s.pre.yaml --custom-env '{"GROOT_ENV": "test"}' --build-arg GROOT_ENV=$GROOT_ENV ./code/Dockerfile
    
    1. 你也可以直接在Dockerfile中使用ENV指令来设置环境变量,然后在构建镜像的时候,通过--custom-env参数来设置这个变量的值。例如:
    ENV GROOT_ENV test
    RUN echo $GROOT_ENV
    

    然后,在构建镜像的时候,你可以这样设置:

    s build -t s.pre.yaml --custom-env '{"GROOT_ENV": "test"}' ./code/Dockerfile
    
    2023-11-30 15:46:27
    赞同 展开评论 打赏
  • 是的,--custom-env不支持custom container镜像build。你这个场景直接dockerfile 里面写env 就好吧,然后再配合arg 直接docker build 更好点。可以写一个 dockerfile, 通过build 的时候传参数的
    https://docs.docker.com/build/guide/build-args/
    。此回答来自钉群Serverless 开发者技术学习群。

    2023-11-15 07:58:52
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载