我正在尝试使用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
答案 0 :(得分:3)
您可以尝试:
RUN addgroup -g 1000 web && \
adduser -G web -g web -s /bin/sh -D web
您的用户将能够写入已安装的目录。