【发布时间】:2019-11-12 15:30:12
【问题描述】:
我可以像这样执行docker run 命令...
docker run --rm --user $(id -u):$(id -g) -e MYDATA=/some/path/to/data -e USER=$USER -p 8883-8887:8883-8887 ...
但是,在 Docker Compose 中,当我写出以下内容时...
version: '3.7'
services:
container_name: some-server
image: some:img
user: $(id -u):$(id -g)
...
...它不起作用。
我知道我要求docker-compose up 执行子shell 命令替换,但它不能。
有没有办法做到这一点?
【问题讨论】:
-
更重要的是,Docker Compose 不是外壳,所以它不做command substitution。
-
更新:自动处理
UID和GID变量的功能将不会添加到撰写中。推理被明确地解释为here 声明性语言中的一个潜在安全漏洞。以前,这是open but now closed issue。
标签: bash shell docker docker-compose