ITADN
shyim/shopware
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

[!CAUTION]
此镜像不再维护。自 Shopware 6.5 起,不再推荐此 Docker 镜像,因为扩展可能需要额外的 Composer 依赖项,这将修改未挂载的 vendor 文件夹。查看新方法

什么是 Shopware?

Shopware 是一款引领潮流的电子商务平台,助力您的在线业务。我们的电子商务解决方案提供了构建和定制完全响应式在线商店所需的美观与智能的完美组合。

Shopware Logo

如何使用此镜像

要运行 Shopware 6,您需要一个兼容的 MySQL 或 MariaDB 容器。

使用 docker-compose 的最小示例

version: "3.8"
services:
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: shopware
      MYSQL_USER: shopware
      MYSQL_PASSWORD: shopware
  shopware:
    image: shyim/shopware:6.4.20-php8.2
    environment:
      APP_SECRET: 440dec3766de53010c5ccf6231c182acfc90bd25cff82e771245f736fd276518
      INSTANCE_ID: 10612e3916e153dd3447850e944a03fabe89440970295447a30a75b151bd844e
      APP_URL: http://localhost
      BLUE_GREEN_DEPLOYMENT: 0
      DATABASE_HOST: mysql
      DATABASE_PORT: 3306
      DATABASE_URL: mysql://shopware:shopware@mysql:3306/shopware
    ports:
      - 80:80

Try

安装完成后,可通过 http://localhost 访问。管理界面的默认凭据为 admin,密码为 shopware

可设置以下环境变量:

变量默认值描述
APP_ENVprod环境
APP_SECRET(empty)可使用 openssl rand -hex 32 生成
APP_URL(empty)Shopware 的访问地址
INSTANCE_ID(empty)商店的唯一标识符:可使用 openssl rand -hex 32 生成
DATABASE_HOST(empty)MySQL 主机(用于检查 MySQL 是否存活)
DATABASE_PORT(empty)MySQL 主机(用于检查 MySQL 是否存活)
BLUE_GREEN_DEPLOYMENT1创建触发器需要超级权限
DATABASE_URL(empty)作为 DSN 的 MySQL 凭据
DATABASE_SSL_CA(empty)SSL CA 文件路径(需对 uid 1000 可读)
DATABASE_SSL_CERT(empty)SSL 证书文件路径(需对 uid 1000 可读)
DATABASE_SSL_KEY(empty)SSL 密钥文件路径(需对 uid 1000 可读)
DATABASE_SSL_DONT_VERIFY_SERVER_CERT(empty)禁用服务器证书验证(1 表示禁用)
MAILER_URLnull://localhost邮件发送器 DSN(管理配置将覆盖此项)
SHOPWARE_ES_HOSTS(empty)Elasticsearch 主机
SHOPWARE_ES_ENABLED0是否启用 Elasticsearch 支持?
SHOPWARE_ES_INDEXING_ENABLED0是否启用 Elasticsearch 索引?
SHOPWARE_ES_INDEX_PREFIX(empty)Elasticsearch 索引前缀
COMPOSER_HOME/tmp/composer插件管理器缓存
SHOPWARE_HTTP_CACHE_ENABLED1是否启用 HTTP 缓存?
SHOPWARE_HTTP_DEFAULT_TTL7200HTTP 缓存的默认 TTL
SHOPWARE_AUTOMATICALLY_EMPTY_CACHE_ENABLEDfalse自动清空缓存。参见 Caches & Indexes > Empty cache automatically
SHOPWARE_EMPTY_CACHE_INTERVAL86400 (24 hours)清除缓存的间隔时间(秒)。
DISABLE_ADMIN_WORKERfalse禁用 admin worker
INSTALL_LOCALEen-GBShop 的默认语言环境
INSTALL_CURRENCYEURShop 的默认货币
INSTALL_ADMIN_USERNAMEadmin默认管理员用户名
INSTALL_ADMIN_PASSWORDshopware默认管理员密码
CACHE_ADAPTERdefault设置为 redis 以启用 redis 缓存
REDIS_CACHE_HOSTredisredis 缓存的主机
REDIS_CACHE_PORT6379Redis 缓存端口
REDIS_CACHE_DATABASE0Redis 数据库索引
SESSION_ADAPTERdefault设置为 redis 以启用 redis session adapter
REDIS_SESSION_HOSTredisredis session 的主机
REDIS_SESSION_PORT6379Redis 会话端口
REDIS_SESSION_DATABASE0Redis 会话索引
ACTIVE_PLUGINS(empty)应安装和更新的插件列表
TZEurope/BerlinPHP 默认时区
PHP_MAX_UPLOAD_SIZE128m参见 php 文档
PHP_MAX_EXECUTION_TIME300参见 php 文档
PHP_MEMORY_LIMIT512m参见 php 文档
FPM_PMdynamic参见 php fpm 文档
FPM_PM_MAX_CHILDREN5参见 php fpm 文档
FPM_PM_START_SERVERS2参见 php fpm 文档
FPM_PM_MIN_SPARE_SERVERS1参见 php fpm 文档
FPM_PM_MAX_SPARE_SERVERS3参见 php fpm 文档

当 Shopware 位于 NGINX 等负责执行 TLS 终止的反向代理之后并启用 SSL 时,请务必配置 Trusted Headers

更新

当您更新镜像版本时,所有必需的迁移将自动运行。降级以类似的方式工作。请在此处检查 Shopware 的 Blue-Green 兼容性。

运行多个容器

请参阅 docker-compose-advanced.yml 获取完整的 docker-compose 示例。

模式:default

  • 容器将检查 Shopware 是否已安装,并安装或更新它(并执行钩子)。
  • 将启动 Web 服务器
command: ['default']

模式:web

  • 将启动 Web 服务器
command: ['web']

模式:维护

  • 容器将检查 Shopware 是否已安装,并安装或更新它(并执行钩子)。
command: ['maintenance']

模式:cli

  • 允许运行 cli 命令,例如消息消费者和其他任务
command: ['cli', 'symfony:command', 'arg1', 'arg2']

路径描述
/state包含当前已安装版本的状态信息。
/var/www/html/custom/plugins已安装的插件
/var/www/html/files文档和其他私有文件
/var/www/html/var/log日志
/var/www/html/public/theme编译后的主题文件
/var/www/html/public/media上传的文件
/var/www/html/public/bundles捆绑资源
/var/www/html/public/sitemap站点地图
/var/www/html/public/thumbnail生成的缩略图
/var/www/html/config/jwtAPI 的 JWT 证书

减少卷的使用

  • /state
    • 通过设置一个包含当前使用的 Shopware 版本的 INSTALLED_SHOPWARE_VERSION 环境变量,可以忽略状态。这将用于检测是否需要执行数据库迁移。
  • /config/jwt
    • 在 Kubernetes 中,您可以将 secretmap 挂载到此位置,并包含您的证书
  • /public/*
    • 使用外部存储适配器,请参阅 Shopware 文档

扩展镜像

附加钩子

  • 要在安装时运行脚本,请将新文件添加到 /etc/shopware/scripts/on-install/xx.sh
  • 要在更新时运行脚本,请将新文件添加到 /etc/shopware/scripts/on-update/xx.sh
  • 要在启动时运行脚本,请将新文件添加到 /etc/shopware/scripts/on-startup/xx.sh

从 packages.shopware.com 安装插件

FROM shyim/shopware:6.4

# Add repository
RUN jq '.repositories += [{"type": "composer","url": "https://packages.shopware.com/","options": {"http": {"header": ["Token: MyToken"]}}}]' /var/www/html/composer.json > /var/www/html/composer2.json && \
  cp composer2.json composer.json && \
  chown 1000:1000 composer.json

RUN sudo -E -u www-data composer require store.shopware.com/swagcmsextensions