envsubst 命令详解

Envsubst

用shell格式字符串中的值替换环境变量。要替换的变量应位于${var}$var格式。

  • 替换环境变量stdin输出到stdout:

echo '{{$HOME}}' | envsubst

  • 将输入文件中的环境变量替换为stdout:

envsubst < {{path/to/input_file}}

  • 将输入文件中的环境变量替换为文件,并将其输出到文件中:

envsubst < {{path/to/input_file}} > {{path/to/output_file}}

  • 用空格分隔的列表,替换输入文件中的环境变量:

envsubst '{{$USER $SHELL $HOME}}' < {{path/to/input_file}}

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
envsubst是一个Unix命令行工具,用于将环境变量的值替换到文本文件中的占位符。它可以方便地在Docker容器中使用。 在Docker中,我们可以使用envsubst来替换Dockerfile、docker-compose.yml或其他配置文件中的环境变量。这对于在不同环境中部署和运行Docker容器非常有用。 假设我们有一个Dockerfile,其中定义了一个环境变量: FROM nginx:latest ENV NGINX_PORT=80 我们还有一个nginx配置文件,其中使用了类似于{{ NGINX_PORT }}的占位符: server { listen {{ NGINX_PORT }}; ... } 在构建镜像之前,我们可以使用envsubst命令将环境变量的真实值替换到nginx配置文件中: $ envsubst < nginx.conf.template > nginx.conf 这将生成一个新的nginx.conf文件,其中的占位符已经被替换为环境变量的值: server { listen 80; ... } 然后,我们可以使用替换后的nginx配置文件构建Docker镜像。 在使用docker-compose时,我们可以在docker-compose.yml文件中使用envsubst来替换其中的环境变量: version: '3' services: web: build: context: . dockerfile: Dockerfile ports: - "${NGINX_PORT}:${NGINX_PORT}" ... 在启动docker-compose时,我们可以使用envsubst命令将环境变量的值替换到docker-compose.yml文件中: $ envsubst < docker-compose.yml.template > docker-compose.yml 然后,我们可以使用替换后的docker-compose.yml文件来启动Docker容器。 总之,envsubst命令在Docker中的使用非常方便,可以帮助我们简化环境变量的替换工作,提高Docker容器部署和管理的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值