为我的Go应用程序构建一个容器会遇到环境变量方面的问题。
在我的本地机器上,我可以执行以下操作:
export GIN_MODE=release
go build -a
这将以一种方式编译我的应用程序,其中名为GIN的库将注意到GIN_MODE env变量并表现出不同的行为。
当我运行应用程序时,它将声明
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
-
在bash中,我尝试将PPID导出为环境变量。但是,在我看来,结果在不同的Linux发行版中是非常不一致的。
在Ubuntu18.04上,下面的大多数命令都是“按预期”工作的。在NixOS上,我得到以下行为:
# normally PPID is not part of the environment
env | grep PPID
# --> no output
# exporting for a single command does not work
PPID=foo some-command
# --> bash: PPID: readonly variable
# e
我在Windows上交叉编译用于Linux的Golang程序,使用:
go build -o myprog.bin myprog.go
为此,我必须设置环境变量GOOS=linux。由于我还在为windows编译一些程序,当我完成交叉编译时,我必须重新设置GOOS=windows。所以我有一个批处理文件,如下所示:
set GOOS=linux
go build -o myprog.bin myprog.go
set GOOS=windows
如果我碰巧同时为每个Linux和Windows编译两个程序,windows程序可能会被编译为Linux。是否有方法将环境变量的范围限制在windows上
Ubuntu (初级操作系统和Linux )中的fish shell中的set命令不起作用。变量保持为空,甚至教程中的示例也不起作用,即:
(设置foo >#将变量$foo的值设置为‘hi’。)。
在脚本中,我试图做以下几点,
set COUNTRY US CN MX
但是,当我想通过$COUNTRY调用变量时,没有答案。
我做错了什么?