如何在dockerode的Cmd参数中使用环境variables?

下面的代码打印出来: ??? $VAR ??? $VAR

我期待/希望: ??? ttslkfjsdalkfj ??? ttslkfjsdalkfj

 container.exec( { Cmd: ['echo', 'test $VAR'], Env: ['VAR=ttslkfjsdalkfj'], AttachStdout: true, AttachStderr: true, }, (err, exec) => { err && console.error(err); exec.start({ hijack: true, stdin: false }, function(err, stream) { docker.modem.demuxStream(stream, process.stdout, process.stderr); }); }, ); 

感谢您的任何帮助和意见。

执行一个交互variables的shell,而不是echo二进制文件。

 Cmd: ['sh','-c','echo test $VAR'] 

您可以通过不带入口点的容器上的命令行模拟两个命令:

 ○→ docker run -e VAR=testa debian echo test '$VAR' test $VAR ○→ docker run -e VAR=testa debian sh -c 'echo test $VAR' test testa