Prestashop 如何处理对docker卷的写/读访问?

Prestashop 如何处理对docker卷的写/读访问?,prestashop,docker-compose,chmod,chown,Prestashop,Docker Compose,Chmod,Chown,我很难将两个容器链接在一起,有人建议我开始使用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 MYSQ

我很难将两个容器链接在一起,有人建议我开始使用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文件夹,但没有成功

我解决了这个问题。 在docker compose up-d之后,我用docker cp将内部文件夹模块、主题和覆盖复制到主机上

因为Prestashop将检查所有文件是否可用

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

我解决了这个问题。 在docker compose up-d之后,我用docker cp将内部文件夹模块、主题和覆盖复制到主机上

因为Prestashop将检查所有文件是否可用


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

我发现docker compose正在映射卷,但因为文件夹刚刚创建,所以它们是空的。有没有办法将默认数据从var/www/html同步到我的主机?我发现docker compose正在映射卷,但因为文件夹刚刚创建,所以它们是空的。有没有办法将默认数据从var/www/html同步到我的主机?