2016-01-22 62 views
5

我有一个docker-compose的docker的symfony安装程序,除了当我运行缓存时清除工作良好,清除,控制台无法访问这些文件。缓存文件的symfony泊坞窗权限问题

我可以绕过许可问题,取消注释umask(0000);在控制台和web/app_dev.php但我想按照推荐运行symfony。

我做的是旋起容器docker-compose up
然后我进入容器。容器通过数据卷包含apache,php和代码。

docker exec -i -t apache_1 /bin/bash 

显然,我正在以root身份登录,然后,当我在高速运行

app/console cache:clear 

所有文件都属于root用户。 www-data作为web服务器用户现在无法再访问这些文件。

我也可以通过以www-data登录来绕过这个问题,然后由cache:clear生成的文件属于www-data,并且web服务器可以访问它们。

docker exec -u www-data -i -t apache_1 /bin/bash 

但是,这是我不土地在bash,但在/usr/sbin目录/ NOLOGIN和不具有的东西的.bash_history等下行。

搜索我发现这是Dockerfile的一部分,以解决权限问题,但它对我没有任何影响。

RUN usermod -u 1000 www-data 

如果我没有理解纠正这种切换用户1000到www数据,但因为我的根,当我登录到该容器,这并不工作,我承担。

那么,为什么我当我登录到容器中,这是怎么usermod命令想与我们合作?

泊坞窗,compose.yml:

proxy: 
    image: jwilder/nginx-proxy:latest 
    volumes: 
    - /var/run/docker.sock:/tmp/docker.sock:ro 
    ports: 
    - "80:80" 
elastic: 
    build: docker/elasticsearch 
    ports: 
    - "9200:9200" 
    volumes: 
    - data/elasticsearch:/usr/local/elasticsearch/data 
apache: 
    build: docker/apachephp 
    environment: 
    - VIRTUAL_HOST=myapp.dev 
    volumes: 
    - ./code:/var/www/app 
    - ./dotfiles/.bash_history:/.bash_history 
    - ./logs:/var/www/app/app/logs 
    links: 
    - elastic 
    expose: 
    - "80" 
+0

http://symfony.com/doc/current/book/installation.html#book-installation-permissions – malcolm

+0

害怕chmod + a在ubuntu中不可用,并且setfacl不能使用默认的码头设置 – ivoba

+0

可以吗请添加您的docker-compose.yml吗? – Snroki

回答

4

我想改变www-data小号用户ID到主机用户的ID是一个很好的解决方案,为主机用户权限是相当容易的设置。

#change www-data`s UID inside a Dockerfile 
RUN usermod -u [USERID] www-data 

用户ID 1000是Mac
对于大多数Linux系统AFAIK ... 501默认可以在主机系统上运行id -u找出来。

然后,您可以登录到容器为www数据运行的symfony命令

docker exec -it -u www-data [CONTAINER] bash

我想知道你怎么能动态地设置用户标识的容器版本。 我猜通过--build-arg把它传递给泊坞窗,撰写会的方式

docker-compose build --build-arg USERID=$(id -u) 

...但没有设法访问该变种在Dockerfile呢。

+0

时动态设置这样的: 根:0 WWW的数据:33 Ubuntu的:1000个 –

+0

感谢,进入容器小号bash作为WWW-数据有效。对于所有其他人,我们所有关于这样的问题的经验都进入了https://github.com/nerdpress-org/docker-sf3,希望它可以帮助... – ivoba