docker-compose volume实时编辑

我在使用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: "jdoe@foo.bar"
        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,我做错了什么?

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

liutalent 回答:docker-compose volume实时编辑

您当前正在使用命名卷进行/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": {
本文链接:https://www.f2er.com/3011715.html

大家都在问