如何处理对接器卷的读/写访问?

时间:2016-06-13 16:39:40

标签: prestashop docker-compose chmod chown

我很难将2个容器连接在一起,并建议开始使用docker-compose。 所以我构建了以下docker-compose文件:

version: '2'
services:
  db:
    image: mysql:latest
    volumes:
      - "./.data/db:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: my-pass
      MYSQL_DATABASE: prestashop
      MYSQL_USER: my-shop
      MYSQL_PASSWORD: my-pass

  prestashop:
    depends_on:
      - db
    image: prestashop/prestashop:latest
    volumes:
      - "./.data/themes:/var/www/html/themes"
      - "./.data/modules:/var/www/html/modules"
      - "./.data/override:/var/www/html/override"
    links:
      - db
    ports:
      - "10083:80"
    restart: always
    environment:
      DB_SERVER: db
      DB_NAME: prestashop
      DB_USER: my-shop
      DB_PASSWD: my-pass

这非常有效,如果我通过反向nginx代理访问该页面,我会得到初始安装向导。

但是如果我添加持久数据卷:

volumes:
  - "./.data/themes:/var/www/html/themes"
  - "./.data/modules:/var/www/html/modules"
  - "./.data/override:/var/www/html/override"

向导会抱怨许多读/写访问权限。 这是为什么?我觉得内部卷确实有正确的chmod? 所以我认为这只是一个同步问题。 但我尝试chmod或chown .data文件夹,但没有任何成功

1 个答案:

答案 0 :(得分:2)

我解决了这个问题。 在 docker-compose up -d 之后,我确实使用 docker cp

将内部文件夹模块,主题和覆盖复制到主机

因为Prestashop会检查所有文件是否都可用。

复制后,您可以运行prestashop安装程序。