2017-10-16 529 views
2

我正在尝试为我的web应用程序创建一个docker-compose的docker图像。我的Web应用程序需要在文件系统上写入文件的权限。非root用户的Docker-compose卷创建

我Dockerfile包含

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

我想挂载我目前.目录/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 container权限挂载用户web

操作系统:Ubuntu的16.04

泊坞窗版本17.09.0策

泊坞窗,撰写版本1.8.0

回答

1

你可以尝试使用:

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

用户将能够写入挂载的目录。

+0

是的,差不多这个。通过明确地设置用户uid和gid来解决这个问题:'RUN addgroup -S web -g 1000 && adduser -u 1000 -G web -D web'。它通过编写权限解决了我的问题。但是为什么我的音量总是由'1000:1000'拥有并且我怎样才能改变这一点 –

相关问题