linux - 在 Dockerfile 上传递 curl 的输出
问题描述
我正在使用一些 curl 命令来获取主机的 IP。curl 命令在终端本身运行良好。这是我使用的 curl 命令:
curl ${ECS_CONTAINER_METADATA_URI_V4} 2>/dev/null | jq -r '.Networks[0].IPv4Addresses[0]'
它返回我的主机的 IP 地址。
我有一个像这样的 Dockerfile:
FROM haproxy:alpine
ENV CONSUL_TEMPLATE_VERSION=0.24.1
RUN apk --update add wget
ENTRYPOINT ["consul-template","-config=/etc/consul-template/data/haproxy.hcl", "-consul-addr=xx.xx.xx.xx:8500"]
我需要将 curl 的输出传递给 Dockerfile 的 ENTRYPOINT 部分中的“xx.xx.xx.xx”。接下来我可以尝试什么?
我试过这样通过,但它不起作用:
-consul-addr=${curl ${ECS_CONTAINER_METADATA_URI_V4} 2>/dev/null | jq -r '.Networks[0].IPv4Addresses[0]'}:8500"
解决方案
您可以放入 Dockerfile :
FROM haproxy:alpine
ENV CONSUL_TEMPLATE_VERSION=0.24.1
RUN apk --update add wget
ENTRYPOINT ["consul-template","-config=/etc/consul-template/data/haproxy.hcl"]
并运行
docker run image-id -consul-addr="${curl ${ECS_CONTAINER_METADATA_URI_V4} 2>/dev/null | jq -r '.Networks[0].IPv4Addresses[0]'}:8500"
推荐阅读
- javascript - 获取在传单地图上使用 mapbox 搜索的地址的纬度/经度
- javascript - 如何缩短组件中通过的项目
- python - pandas read_csv 抛出 ValueError:无效的文件路径或缓冲区对象类型:
- javascript - 如何检测 JavaScript 函数何时运行?
- dialogflow-es - 错误 Google Nest Hub 与 Dialogflow 结合使用
- python - LookupError: setuptools-scm 无法检测版本(使用 python setup.py install 时)
- sql - 获取日期范围的问题
- ios - 无法在 ionic -4 (ios) 上安装“cordova-plugin-ms-adal”
- r - 寻找满足条件语句的时差
- javascript - Mongoose,从每次对话中获取最新消息