Docker为非root用户创建卷创建

时间:2017-10-16 16:39:53

标签: docker docker-compose

我正在尝试使用docker-compose为我的Web应用程序创建一个docker镜像。我的Web应用程序需要在文件系统上写入文件的权限。

我的Dockerfile包含

# some other stuff
RUN addgroup -S web && adduser -S -g web web
USER web  

我想将当前.目录挂载到docker容器中的/code;

当我执行docker-compose build&& docker-compose up,容器中的/code目录属于用户" 1000:1000",而不是我在Dockerfile中创建的用户。

version: '2'                                                                     

services:                                                                                           
  admin:                                                                         
    build:                                                                       
      context: .                                                                 
      dockerfile: Dockerfile                                                     
    command: python manage.py 0.0.0.0 8030                           
    volumes:                                                                     
    - .:/code                                                                    
    ports:                                                                       
     - 9000:8030                                                                 
    stdin_open: true                                                             
    tty: true                                                                                                                 
volumes:                                                                         
  .:                                                                             
    driver_opts:                                                                 
      o: uid=100,gid=65533

如您所见,我尝试使用我的用户uid和gid参数传递driver_opts;但它没有帮助。

我的问题是:如何将我的目录.安装到用户/code的docker容器权限中的web

操作系统:Ubuntu 16.04

docker version 17.09.0-ce

docker-compose版本1.8.0

1 个答案:

答案 0 :(得分:3)

您可以尝试:

RUN addgroup -g 1000 web && \ adduser -G web -g web -s /bin/sh -D web

您的用户将能够写入已安装的目录。