ing*_*ere 33 bash shell docker docker-compose
我可以这样执行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 命令替换,但它不能。
有没有办法做到这一点?
Edw*_*ung 46
试试这个
所以,你需要把:
user: "${UID}:${GID}"
在您的 docker compose 中并提供 UID 和 GID 作为 docker-compose 参数
UID=${UID} GID=${GID} docker-compose up
(或将 UID 和 GID 定义为环境变量)。
Ami*_*esh 17
这也可以做到
在你的 docker-composer.yml 中
user: $DOCKER_USER
在命令行中
echo 'export DOCKER_USER="$(id -u):$(id -g)"' >> ~/.bash_profile
source ~/.bash_profile
docker-compose up
创建一个 DOCKER_USER 变量并将其添加到 bash_profile 中以实现持久性。该源代码将帮助 shell 按需识别 .bash_profile 的更改
| 归档时间: | 
 | 
| 查看次数: | 34426 次 | 
| 最近记录: |