Ben*_*Ben 8 bash escaping docker dockerfile
我想知道是否有办法做到这一点
假设dockerfile包含这一行,它指定了可执行文件的路径
ENV CLI /usr/local/bin/myprogram
我希望能够通过exec命令使用 ENV 变量名调用这个程序。
例如
docker exec -it <my container> 'echo something-${CLI}
期待
something-/usr/local/bin/myprogram
然而,返回:
OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"${CLI} do something\": executable file not found in $PATH": unknown
Ben*_*Ben 13
好的,我找到了一种方法,您需要做的就是使用 bash 评估命令
docker exec -it <container id> bash -c 'echo something-${CLI}'
返回 something-/usr/local/bin/myprogram
如果CLI容器中还没有设置环境变量,也可以传入如:
docker exec -it -e CLI=/usr/local/bin/myprogram <container id> bash -c 'echo something-${CLI}'
查看帮助文件:
docker exec --help
Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Run a command in a running container
Options:
-d, --detach Detached mode: run command in the background
-e, --env list Set environment variables
....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6260 次 |
| 最近记录: |