shyim/shopware · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
[!CAUTION]
此镜像不再维护。自 Shopware 6.5 起,不再推荐此 Docker 镜像,因为扩展可能需要额外的 Composer 依赖项,这将修改未挂载的 vendor 文件夹。查看新方法
什么是 Shopware?
Shopware 是一款引领潮流的电子商务平台,助力您的在线业务。我们的电子商务解决方案提供了构建和定制完全响应式在线商店所需的美观与智能的完美组合。
如何使用此镜像
要运行 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
安装完成后,可通过 http://localhost 访问。管理界面的默认凭据为 admin,密码为 shopware。
可设置以下环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
| APP_ENV | prod | 环境 |
| 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_DEPLOYMENT | 1 | 创建触发器需要超级权限 |
| 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_URL | null://localhost | 邮件发送器 DSN(管理配置将覆盖此项) |
| SHOPWARE_ES_HOSTS | (empty) | Elasticsearch 主机 |
| SHOPWARE_ES_ENABLED | 0 | 是否启用 Elasticsearch 支持? |
| SHOPWARE_ES_INDEXING_ENABLED | 0 | 是否启用 Elasticsearch 索引? |
| SHOPWARE_ES_INDEX_PREFIX | (empty) | Elasticsearch 索引前缀 |
| COMPOSER_HOME | /tmp/composer | 插件管理器缓存 |
| SHOPWARE_HTTP_CACHE_ENABLED | 1 | 是否启用 HTTP 缓存? |
| SHOPWARE_HTTP_DEFAULT_TTL | 7200 | HTTP 缓存的默认 TTL |
| SHOPWARE_AUTOMATICALLY_EMPTY_CACHE_ENABLED | false | 自动清空缓存。参见 Caches & Indexes > Empty cache automatically |
| SHOPWARE_EMPTY_CACHE_INTERVAL | 86400 (24 hours) | 清除缓存的间隔时间(秒)。 |
| DISABLE_ADMIN_WORKER | false | 禁用 admin worker |
| INSTALL_LOCALE | en-GB | Shop 的默认语言环境 |
| INSTALL_CURRENCY | EUR | Shop 的默认货币 |
| INSTALL_ADMIN_USERNAME | admin | 默认管理员用户名 |
| INSTALL_ADMIN_PASSWORD | shopware | 默认管理员密码 |
| CACHE_ADAPTER | default | 设置为 redis 以启用 redis 缓存 |
| REDIS_CACHE_HOST | redis | redis 缓存的主机 |
| REDIS_CACHE_PORT | 6379 | Redis 缓存端口 |
| REDIS_CACHE_DATABASE | 0 | Redis 数据库索引 |
| SESSION_ADAPTER | default | 设置为 redis 以启用 redis session adapter |
| REDIS_SESSION_HOST | redis | redis session 的主机 |
| REDIS_SESSION_PORT | 6379 | Redis 会话端口 |
| REDIS_SESSION_DATABASE | 0 | Redis 会话索引 |
| ACTIVE_PLUGINS | (empty) | 应安装和更新的插件列表 |
| TZ | Europe/Berlin | PHP 默认时区 |
| PHP_MAX_UPLOAD_SIZE | 128m | 参见 php 文档 |
| PHP_MAX_EXECUTION_TIME | 300 | 参见 php 文档 |
| PHP_MEMORY_LIMIT | 512m | 参见 php 文档 |
| FPM_PM | dynamic | 参见 php fpm 文档 |
| FPM_PM_MAX_CHILDREN | 5 | 参见 php fpm 文档 |
| FPM_PM_START_SERVERS | 2 | 参见 php fpm 文档 |
| FPM_PM_MIN_SPARE_SERVERS | 1 | 参见 php fpm 文档 |
| FPM_PM_MAX_SPARE_SERVERS | 3 | 参见 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/jwt | API 的 JWT 证书 |
减少卷的使用
- /state
- 通过设置一个包含当前使用的 Shopware 版本的
INSTALLED_SHOPWARE_VERSION环境变量,可以忽略状态。这将用于检测是否需要执行数据库迁移。
- 通过设置一个包含当前使用的 Shopware 版本的
- /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