Shopware 6整站本地开发环境最佳搭建方案咨询
Shopware 6 整站开发本地环境搭建方案
方案选型逻辑
你之前用的Dockware dev镜像本身工具链非常完善,watch-admin、watch-storefront这类热重载工具对开发效率提升很大,默认配置只支持插件开发的核心原因是镜像把Shopware核心代码打包在容器内部,仅挂载了custom/plugins插件目录,无法直接修改核心代码、调整全局composer依赖、做整站级的自定义配置。
整站开发场景不需要换基础镜像,只需要调整Docker挂载逻辑,把全量代码目录映射到本地,同时把数据库、缓存等服务做持久化,就能既保留Dockware的工具便利性,又支持全量代码修改。
可直接复用的docker-compose.yml配置
这个配置保留了Dockware dev镜像的全部开发工具,所有项目代码会挂载到本地目录,支持核心代码、主题、插件、全局配置的全量修改:
version: "3.8" services: app: image: dockware/dev:latest ports: - "80:80" # Storefront前端访问端口 - "8080:8080" # Admin后台访问端口 - "9998:9998" # Storefront热重载通信端口 - "9999:9999" # Admin热重载通信端口 volumes: # 全量挂载本地Shopware代码目录,替换镜像内置代码,支持整站修改 - ./shopware:/var/www/html # 挂载composer缓存,避免每次重装依赖重复下载 - ~/.composer:/var/www/.composer environment: - APP_ENV=dev - APP_DEBUG=1 - DATABASE_URL=mysql://shopware:shopware@db:3306/shopware - SHOPWARE_ES_ENABLED=0 - PHP_VERSION=8.2 # 6.5+版本Shopware推荐用PHP8.2,低版本可自行调整为8.1 - AUTOSTART_TINKER=0 - AUTOSTART_WEBHOOKS=0 networks: - shopware-dev depends_on: - db - redis restart: unless-stopped db: image: mysql:8.0 ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=shopware - MYSQL_USER=shopware - MYSQL_PASSWORD=shopware networks: - shopware-dev command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci restart: unless-stopped redis: image: redis:7-alpine ports: - "6379:6379" volumes: - redis-data:/data networks: - shopware-dev restart: unless-stopped volumes: mysql-data: redis-data: networks: shopware-dev: driver: bridge
初始化与日常使用流程
- 首次使用先在docker-compose.yml所在目录新建
shopware空文件夹,执行docker-compose up -d启动容器后,进入app容器执行composer create-project shopware/production .拉取对应版本的Shopware全量代码,后续所有代码修改直接在本地shopware目录操作即可,容器内会实时同步。 - 代码拉取完成后,在容器内执行
bin/console system:install --basic-setup完成系统初始化,默认后台登录账号密码为demo/demo,和原生Dockware配置一致。 - 前端开发需要热重载时,直接在容器内执行原有命令即可,使用体验和默认Dockware完全一致:
- 后台热重载:
./bin/build-administration.sh --watch - 店面热重载:
./bin/build-storefront.sh --watch
- 后台热重载:
- 整站开发相关操作不需要额外进容器改文件:调整composer依赖直接编辑本地
shopware/composer.json后进容器执行composer命令即可,自定义主题、修改核心业务逻辑、调整系统配置都可以直接在本地挂载目录操作。
如果项目需要用到OpenSearch/Elasticsearch,只需要在compose配置中追加对应服务,把app容器的
SHOPWARE_ES_ENABLED改为1,配置对应连接地址即可,不需要调整现有基础逻辑。
内容的提问来源于stack exchange,提问作者Alphaegen
相关产品推荐
相关产品推荐

