【问题标题】:How to handle write/read access to docker volumes?如何处理对 docker 卷的写/读访问?
【发布时间】:2016-06-13 16:39:40
【问题描述】:

我很难将 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 文件夹,但没有任何成功

【问题讨论】:

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

标签: prestashop docker-compose chmod chown


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 2019-08-18
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    相关资源
    最近更新 更多