首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lando:使用环境变量的exec错误

Lando:使用环境变量的exec错误
EN

Stack Overflow用户
提问于 2019-10-09 11:39:09
回答 3查看 1.4K关注 0票数 0

我正在使用兰多 (在Windows10Enterprise上使用v3.0.0-rc.21),并试图在我的.lando.yml中创建容器时设置一个环境变量

代码语言:javascript
复制
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 ssh运行相同的命令,其工作原理如下:

代码语言:javascript
复制
lando ssh
www-data@81bd623b9c3a:/app$ export SOMENAME=somevalue
www-data@81bd623b9c3a:/app$ printenv SOMENAME
somevalue
www-data@81bd623b9c3a:/app$

这是兰多虫吗?或者一些(哪个?)shell命令应该以某种不同的方式调用吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-09 11:44:03

您可以在lando中使用此env_file

代码语言:javascript
复制
env_file:
  - defaults.env

defaults.env

代码语言:javascript
复制
SOMENAME=somevalue

请参阅

票数 2
EN

Stack Overflow用户

发布于 2019-11-01 10:59:13

只是想把这个从评论中拿出来。最后,兰多重写了这样一个解决方案:

代码语言:javascript
复制
services:
  appserver:
    type: ruby # or other type
    overrides:
      environment:
        SOMENAME: somevalue

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

另一个解决办法--正如@LinPy在他的回答中所建议的--是使用外部env_file

票数 1
EN

Stack Overflow用户

发布于 2020-08-03 22:14:28

如果希望在CLI中有可用的变量,可以这样做:

代码语言:javascript
复制
events:
  post-start:
    - appserver: "export PHP_IDE_CONFIG=\"serverName=appserver\""

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58303293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档