You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过docker-compose绑定挂载Docker中Magento 2文件用于本地开发?

Magento 2本地Docker开发:绑定挂载同步容器文件到本地目录

我已能通过以下步骤启动Bitnami版Magento 2本地实例:

  • 执行命令拉取docker-compose文件:curl -k https://raw.githubusercontent.com/bitnami/containers/main/bitnami/magento/docker-compose.yml > docker-compose.yml
  • 启动服务:docker-compose up -d
  • 访问localhost:80即可打开Magento 2站点

当前使用的docker-compose.yml内容如下:

version: '2'
services:
  mariadb:
    image: docker.io/bitnami/mariadb:10.4
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_magento
      - MARIADB_DATABASE=bitnami_magento
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  magento:
    image: docker.io/bitnami/magento:2
    ports:
      - '80:8080'
      - '443:8443'
    environment:
      - MAGENTO_HOST=localhost
      - MAGENTO_DATABASE_HOST=mariadb
      - MAGENTO_DATABASE_PORT_NUMBER=3306
      - MAGENTO_DATABASE_USER=bn_magento
      - MAGENTO_DATABASE_NAME=bitnami_magento
      - ELASTICSEARCH_HOST=elasticsearch
      - ELASTICSEARCH_PORT_NUMBER=9200
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'magento_data:/bitnami/magento'
    depends_on:
      - mariadb
      - elasticsearch
  elasticsearch:
    image: docker.io/bitnami/elasticsearch:7
    volumes:
      - 'elasticsearch_data:/bitnami/elasticsearch/data'
volumes:
  mariadb_data:
    driver: local
  magento_data:
    driver: local
  elasticsearch_data:
    driver: local

问题:容器内的Magento文件未同步到本地工作目录,无法进行本地文件开发,尝试配置绑定挂载未成功。

解决方案

要实现本地目录与容器内Magento文件的双向同步,需修改绑定挂载配置,并先同步容器内的初始文件到本地:

  1. 停止当前运行的容器:
docker-compose down
  1. 在本地工作目录(存放docker-compose.yml的目录)创建Magento文件目录:
mkdir ./magento
  1. 从Bitnami镜像中复制Magento初始文件到本地目录:
docker run --rm -v $(pwd)/magento:/target docker.io/bitnami/magento:2 cp -a /bitnami/magento/. /target/
  1. 修改docker-compose.yml中magento服务的volumes配置,将原有的命名卷替换为绑定挂载:
    原配置:
volumes:
  - 'magento_data:/bitnami/magento'

替换为:

volumes:
  - ./magento:/bitnami/magento
  1. 重新启动容器:
docker-compose up -d

修改后的完整docker-compose.yml

version: '2'
services:
  mariadb:
    image: docker.io/bitnami/mariadb:10.4
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_magento
      - MARIADB_DATABASE=bitnami_magento
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  magento:
    image: docker.io/bitnami/magento:2
    ports:
      - '80:8080'
      - '443:8443'
    environment:
      - MAGENTO_HOST=localhost
      - MAGENTO_DATABASE_HOST=mariadb
      - MAGENTO_DATABASE_PORT_NUMBER=3306
      - MAGENTO_DATABASE_USER=bn_magento
      - MAGENTO_DATABASE_NAME=bitnami_magento
      - ELASTICSEARCH_HOST=elasticsearch
      - ELASTICSEARCH_PORT_NUMBER=9200
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - ./magento:/bitnami/magento
    depends_on:
      - mariadb
      - elasticsearch
  elasticsearch:
    image: docker.io/bitnami/elasticsearch:7
    volumes:
      - 'elasticsearch_data:/bitnami/elasticsearch/data'
volumes:
  mariadb_data:
    driver: local
  elasticsearch_data:
    driver: local

完成以上操作后,本地./magento目录将与容器内/bitnami/magento目录双向同步,你可以直接在本地修改文件,容器会实时获取更新。

内容的提问来源于stack exchange,提问作者inked_rabbit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:02:39