0

我正在使用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 ssh,在lando 启动后运行相同的命令可以正常工作:

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

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

4

3 回答 3

2

你可以env_file在lando yaml中使用它:

env_file:
  - defaults.env

defaults.env

SOMENAME=somevalue

看到这个

于 2019-10-09T11:44:03.623 回答
0

只是为了从评论中提取这个。最终得到了一个使用Lando 覆盖的解决方法,如下所示:

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

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

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

于 2019-11-01T10:59:13.530 回答
0

如果您想在 CLI 中使用该变量,您可以执行以下操作:

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

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

于 2020-08-03T22:14:28.297 回答