【发布时间】:2015-06-06 11:45:12
【问题描述】:
我在互联网上阅读了很多关于如何以最佳方式将本地(项目)目录挂载到 Docker 容器中的帖子,以便这些目录不属于 root 用户。不幸的是,我没有找到准确的答案。
我正在使用这个 docker-compose.yml (SfDocker) 文件构建我的开发堆栈:
db:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: symfonyrootpass
MYSQL_DATABASE: symfony
MYSQL_USER: symfony
MYSQL_PASSWORD: symfonypass
worker:
image: symfony/worker-dev
ports:
- "8080:80"
environment:
XDEBUG_HOST: 192.168.1.194
XDEBUG_PORT: 9000
XDEBUG_REMOTE_MODE: req
links:
- db
volumes:
- "var/nginx/:/var/log/nginx"
- symfony-code:/var/www/app
只有在构建镜像之后才会在运行时挂载卷。我在symfony/worker-dev 映像中添加了RUN groupadd -r luqo33 && useradd -r -g luqo33 luqo33 的新用户,但我无法chmod 安装的卷,因此它归luqo33:www-data 所有。我试过这样做:
-
使用
chmod命令复制并运行entrypoint.sh:复制 entrypoint.sh /entrypoint.sh 运行 chmod +x /entrypoint.sh 入口点 ["/entrypoint.sh"]
容器会在没有明显原因的情况下启动然后关闭。
- 在启动容器时执行
CMD chown -R luqo33:www-data- 这不起作用,因为在启动worker-dev容器时,卷似乎尚未安装。
我没有设法将挂载目录的所有权设置给root 以外的用户。我怎样才能做到这一点?
【问题讨论】:
-
" 在启动 worker-dev 容器时,卷似乎尚未安装。"你在 Mac 上使用 boot2docker 吗?
标签: docker containers