docker-compose volume live edit

问题描述 投票:0回答:1

我在使用Prestashop实时编辑代码时遇到了一些麻烦。

参考:https://github.com/mattiamari/docker-prestashop1.7-php7-fpm

version: '3.7'
services:
    prestashop:
      build: 
        context: prestashop
        dockerfile: Dockerfile
        args:
        - PRESTASHOP_VERSION=1.7.6.2
      environment:
        PS_DOMAIN: "localhost:8081"
        DB_SERVER: db
        DB_PORT: "3306"
        DB_USER: prestashop
        DB_PASSWORD: prestashop
        DB_NAME: prestashop
        DB_CLEAR: '0'
        DB_CREATE: '1'
        DB_PREFIX: "ps_"
        PS_DIR_INSTALL: install1234
        PS_DIR_ADMIN: admin1234
        PS_LANGUAGE: en
        PS_TIMEZONE: "Europe/London"
        PS_SHOP_NAME: "test shop"
        PS_SHOP_COUNTRY: en
        PS_FIRSTNAME: John
        PS_LASTNAME: Doe
        PS_PASSWORD: testshop123
        PS_EMAIL: "[email protected]"
        PS_NEWSLETTER: '0'
        PS_SSL: '0'
        PHP_MEMORY_LIMIT: 256M
        PHP_MAX_EXECUTION_TIME: "200"
        PHP_MAX_INPUT_TIME: "60"
      expose:
      - "9000"
      volumes:
      - app:/app
      depends_on:
      - db
      restart: unless-stopped
    web:
      build: web
      environment:
        PS_DOMAIN: "localhost:8081"
        PS_DIR_INSTALL: install1234
        PS_DIR_ADMIN: admin1234
      ports:
      - "8081:80"
      # - "443:443"
      volumes:
      - app:/app:rw
      depends_on:
      - prestashop
      restart: unless-stopped
    db:
      image: mariadb:latest
      environment:
        MYSQL_ROOT_PASSWORD: supercow
        MYSQL_DATABASE: prestashop
        MYSQL_USER: prestashop
        MYSQL_PASSWORD: prestashop
      volumes:
      - ./db/config:/etc/mysql/conf.d
      - db-data:/var/lib/mysql
      restart: unless-stopped
volumes:
    app:
      driver: local
      driver_opts:
        type: none
        o: bind
        device: ${PWD}/httpdocs/current
    db-data:

我想从本地访问/ app,我做错了什么?

有没有一种方法可以实时共享开发任务的内容。

docker docker-compose local edit docker-volume
1个回答
1
投票

您当前正在为/app装载使用命名卷,而不是文件系统装载(实际上用于./db/config:/etc/mysql/conf.d的装载)。

/app挂载切换到docker-compose.yml文件中的以下内容:

      volumes:
        - ./app:/app

一旦完成,就可以从文件系统中相对于docker-compose.yml文件与该文件夹进行交互。

-

您正在使用的命名卷也位于文件系统上,但并不意味着可以直接与之交互。如果检查容器,则可以看到文件的位置,并可以使用sudo特权进行操作。这是我的elasticsearch容器的示例。

$ docker inspect elasticsearch | grep -i Volume
            "VolumeDriver": "",
            "VolumesFrom": [],
                "Type": "volume",
                "Source": "/var/lib/docker/volumes/kibana_es_data/_data",
            "Volumes": {
© www.soinside.com 2019 - 2024. All rights reserved.