我正在研究如何从 Makefile 环境变量导出以在用户环境中公开,因此应该可以从用户 shell 访问从 Makefile 导出这些变量。
我努力了make's export https://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html#Variables_002fRecursion但据我了解并尝试过,不会导出到 Makefile 之外。
这样做的想法是填充Docker Compose 环境变量 https://docs.docker.com/compose/environment-variables/以一种优雅的方式让这些变量也可以在用户 shell 中使用。
这是我用 make 尝试过的片段export
:
include docker.env
export $(shell sed -n '/=/p' docker.env)
SHELL := /bin/bash
run:
@docker-compose -f my-service.yml up -d
根据ArchWiki https://wiki.archlinux.org/index.php/Environment_variables#Utilities,Bash的各个进程...
每个进程将其环境存储在 /proc/$PID/environ 文件中。
所以一旦Make执行一个source
, export
或任何其他设置新环境变量的命令,它将仅应用于该进程。
作为解决方法,我在 bash 启动文件中编写了这样的方法,因此一旦加载新的 bash shell,变量就会位于全局环境中:
SHELL := /bin/bash
RC := ~/.bashrc
ENV := $(shell sed -n '/=/p' docker.env)
test:
@$(foreach e,$(ENV),echo $(e) >> $(RC);) \
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)