Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建无根Docker容器_Docker - Fatal编程技术网

如何创建无根Docker容器

如何创建无根Docker容器,docker,Docker,我试图避免docker容器在创建新文件时出现大量权限错误。因此,我遵循了这篇文章: 它只是建议将当前用户和组ID传递给docker构建过程。我正试图用docker-compose来实现这一点,但是有很多问题,因为它不喜欢美元符号 下面是顶部我的docker compose.yml文件的外观: services: app: build: context: . dockerfile: Dockerfile.dev args: - RED

我试图避免docker容器在创建新文件时出现大量权限错误。因此,我遵循了这篇文章:

它只是建议将当前用户和组ID传递给docker构建过程。我正试图用
docker-compose
来实现这一点,但是有很多问题,因为它不喜欢美元符号

下面是顶部我的
docker compose.yml
文件的外观:

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
      args:
        - REDIS_URL=redis://redis:6379/0
        - USER_ID=${id -u}
        - GROUP_ID=${id -g}
但是,当我运行此操作时,会出现以下错误:

ubuntu@ip-10-20-38-52:~/goku$ docker-compose build app
ERROR: Invalid interpolation format for "build" option in service "app": "USER_ID=${id -u}"
我尝试过各种方法,包括
$$(id-u)
$(id-u)
,对于
id-g
,我也尝试过同样的方法。两者都有相同的错误

我甚至尝试过使用
环境
而不是args,例如:

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    environment:
      - REDIS_URL=redis://redis:6379/0
      - USER_ID=$$(id -u)
      - GROUP_ID=$$(id -g)
我还尝试了以下方法:

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
      args:
        - REDIS_URL=redis://redis:6379/0
        - USER_ID=$${id -u}
        - GROUP_ID=$${id -g}
这就变成了这个错误:

Step 1/16 : FROM ruby:2.5.8-buster
 ---> fc5e02c64ca4
Step 2/16 : ARG USER_ID
 ---> Using cache
 ---> 6dcd7b5124a2
Step 3/16 : ARG GROUP_ID
 ---> Using cache
 ---> cf8d3e88a3a2
Step 4/16 : RUN groupadd --gid $GROUP_ID ubuntu
 ---> Running in ab3496006746
groupadd: invalid group ID '${id'
The command '/bin/sh -c groupadd --gid $GROUP_ID ubuntu' returned a non-zero code: 3
ERROR: Service 'app' failed to build

还是不走运。

我认为你应该使用语音标记,因为有空格,当你的变量被扩展时,
REDIS\u URL
变量没有空格,也不会破坏你的脚本。

简单地说一下,LewlSauce:一般来说,社区更喜欢没有闲聊或对话内容的贡献。Stack Overflow的编辑模式更接近维基百科,比如社交媒体网站或聊天室。问答作品打算保存数年,甚至数十年,因此不需要记录感谢、问候等。我有时会发布这样的建议:注意,我们更喜欢这里的技术写作风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,闲聊的材料和缩写的txtspk,恳求,你被困多久了,投票建议,元评论等。只需解释你的问题,并展示你已经尝试了什么,你期望什么,实际上发生了什么。