Lando:环境变量的执行错误



我正在使用Lando(Windows 10 Enterprise上的v3.0.0-rc.21(,并尝试在我的.lando.yml中设置容器创建的环境变量:

services:
appserver:
type: ruby # the same for php, but didn't tested other types
run:
- export SOMENAME=somevalue
tooling:
test:
cmd: export SOMENAME=somevalue
service: appserver

看起来 Lando 启动时无法识别该命令,因为它抛出:OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: "export": executable file not found in $PATH": unknown

lando ssh -c "export SOMENAME=somevalue"或将其作为命令添加到.lando.yml中的工具部分(见上文(然后运行lando test时会发生相同的错误。

但是,在 lando 启动后从lando ssh运行相同的命令可以正常工作:

lando ssh
www-data@81bd623b9c3a:/app$ export SOMENAME=somevalue
www-data@81bd623b9c3a:/app$ printenv SOMENAME
somevalue
www-data@81bd623b9c3a:/app$

这是兰多虫吗?或者一些(哪个?(shell命令应该被称为某种不同的?

您可以在Lando Yaml中使用此env_file

env_file:
- defaults.env

defaults.env

SOMENAME=somevalue

看到这里

只是为了从评论中提取这个。最终得到了一个解决方法,兰多覆盖如下

services:
appserver:
type: ruby # or other type
overrides:
environment:
SOMENAME: somevalue

文档:https://docs.lando.dev/config/services.html#overrides

正如@LinPy在他的回答中所建议的那样,另一种解决方法是使用外部env_file

如果您希望变量在 CLI 中可用,您可以执行以下操作:

events:
post-start:
- appserver: "export PHP_IDE_CONFIG="serverName=appserver""

运行lando restart -y && lando ssh然后通过printenv | grep PHP_IDE_CONFIG检查值

相关内容

  • 没有找到相关文章

最新更新