首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Docker上的Apache :在共享虚拟主机环境中设置文件权限

Docker上的Apache :在共享虚拟主机环境中设置文件权限
EN

Stack Overflow用户
提问于 2018-05-28 17:27:24
回答 1查看 556关注 0票数 0

我是新来码头的。我正在尝试从传统的VM设置切换到我管理的一系列网站的dockerized设置。我尝试过Docker Compose和Wordpress,这是我的docker-compose.yml文件:

代码语言:javascript
复制
version: "3"

services:
  blog2:
    image: wordpress:4.9.6-apache
    volumes:
      - blog2:/var/www/html
    environment:
      WORDPRESS_DB_PASSWORD:
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD:

volumes:
    blog2:

它可以工作,并创建一个我可以从/var/lib/docker/volumes/blog2访问的主文件系统上的blog2卷。我还可以连接SFTP和编辑文件,一切工作。/var/www/html目录中的文件归www-data用户所有。如果我编辑它们,这是可以的,但如果我添加一个新文件...它归我在服务器上使用的用户所有(在我的测试用例中,它是root用户,但也可以是任何其他用户)。因此,如果www服务器需要编辑或删除它们,它们不能被www-data修改。

我如何解决这个问题?我的想法是在每个Docker容器中添加一个用户,将他添加到www-data组中,并将整个/var/www/html更改为该用户,这样,初始和未来的文件都可以是red或由两者写入,无论它们是由www-data还是该用户创建的。

它能工作吗?在创建容器时执行docker-compose up -d时,是否可以将其写在docker-compose.yml文件中进行设置?:)

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-05-28 18:30:52

您的问题的一个解决方案是使用不同的用户启动wordpress容器。在以任意用户身份在dockerhub page for the wordpress image上运行中记录了这一点。

在docker组合文件中,您可以设置将在容器中运行的用户。例如,您可以指定用户1000,它将映射到计算机上的用户1000。因此,您可以找到用户www-data的uid,并使用该uid启动容器:

代码语言:javascript
复制
...
services:
  blog2:
    image: wordpress:4.9.6-apache
    user: 1000:1000  
    volumes:
      - blog2:/var/www/html
    environment:
      WORDPRESS_DB_PASSWORD:
    depends_on:
      - mysql
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档