在使用Docker环境变量时如何在Wget HTTP PUT中使用外部JSON文件?

时间:2019-04-23 17:18:06

标签: json linux docker dockerfile wget

当前情况:

  1. 基于Ubuntu映像的Dockerfile,安装Wget并声明启动容器时bash脚本将运行。
  2. 基于映像启动Docker容器,并在命令中包含必需的环境变量。这些变量将在bashscript中的Wget命令中使用。

    docker run -i -e ‘ENV_VARIABLE=VALUE’ [imagename]
    
  3. 容器运行bash脚本,其中包含Wget HTTP PUT:

    wget --method=PUT --body-data=”{\“key\”:\”${ENV_VARIABLE}\”}” ……
    

所需情况:

当前情况可行,但我不喜欢这种解决方案。这是因为我必须使用引号转义(\“)。

我试图通过如下构造--body-data并用单引号引起来解决此问题。

‘{“key”:”${ENV_VARIABLE}”}’  

但是,由于有效负载现在是完整的String,因此不会设置ENV_VARIABLE。

一个更可取的解决方案是将JSON分离为JSON文件,我可以在Wget调用中引用它。这引起了以下问题:

  1. 如何引用JSON文件?我最好的猜测是,首先将映像构建中的文件复制到映像中,然后通过Wget调用中的路径进行引用,但是再次,我该如何引用它?
  2. 如果上述观点是正确的,我仍然可以引用Docker环境变量吗?

0 个答案:

没有答案