资讯详情

Smartstore Docker部署进阶指南:docker-compose一键容器化MySQL与SQL Server

📅 2026/10/4 21:48:20 | 华诺云谱 👁 阅读
Smartstore Docker部署进阶指南:docker-compose一键容器化MySQL与SQL Server
Smartstore Docker部署进阶指南docker-compose一键容器化MySQL与SQL Server【免费下载链接】SmartstoreA modular, scalable and ultra-fast open-source all-in-one eCommerce platform built on ASP.NET Core 10项目地址: https://gitcode.com/GitHub_Trending/smar/SmartstoreSmartstore 是一款基于ASP.NET Core 10构建的模块化、可扩展、超快速的开源一体化电商eCommerce平台。本文将带你用docker-compose一键完成 Smartstore 的 Docker 容器化部署分别对接MySQL与SQL Server两种数据库让你无需手动安装任何依赖几分钟内就能跑起一个完整的电商系统。为什么选择 Docker 容器化部署 Smartstore 传统部署需要先装 .NET 运行时、数据库、配置环境步骤繁琐且容易踩坑。Smartstore 官方原生支持 Docker把整个应用封装成镜像后部署被简化为一条命令 一个配置文件环境零依赖容器自带 ASP.NET Core 运行时连 PDF 生成所需的 wkhtmltopdf 都已预装一键起库docker-compose 同时拉起 Web 容器和数据库容器自动处理依赖顺序depends_on数据持久化通过命名卷volume挂载数据库文件和站点数据不随容器销毁而丢失多数据库可选官方提供 MySQL、SQL Server、PostgreSQL 三套 compose 编排按需切换。Smartstore 支持 Microsoft SQL Server 2016 Express、MySQL 8.0、PostgreSQL 11 与 SQLite 3.31 四大数据库系统容器化部署时选 MySQL 还是 SQL Server完全取决于你的技术栈偏好。读懂 3 个 docker-compose 文件仓库根目录提供了三套开箱即用的编排文件这是本文的核心编排文件数据库镜像宿主机端口说明docker-compose.ymlmysql3307:3306基础文件web MySQL最常用docker-compose.sqlserver.ymlmcr.microsoft.com/mssql/server1434:1433覆盖文件替换 db 服务为 SQL Server Expressdocker-compose.postgres.ymlpostgres:latest5432:5432PostgreSQL 方案附赠参考 注意SQL Server 文件是一个覆盖层override它只定义数据库服务和数据卷路径Web 服务复用基础文件的镜像与端口需要与基础文件组合使用见下文。一键部署 Smartstore MySQL最快方案第一步克隆仓库并进入目录git clone https://gitcode.com/GitHub_Trending/smar/Smartstore cd Smartstore第二步一条命令启动docker compose -f docker-compose.yml up -d执行后docker-compose 会同时启动两个容器容器作用关键配置webSmartstore 应用ghcr.io/smartstore/smartstore-linux镜像端口80:80restart: unless-stopped自动重启mysqlMySQL 数据库端口3307:3306宿主机 3307避免与本机 MySQL 冲突第三步首次访问与安装浏览器访问http://localhost按安装向导完成店铺初始化与数据库连接设置数据库地址填容器网络内的服务名db端口 3306密码为 compose 文件中配置的Smartstore2022!。关键配置解读打开 docker-compose.yml 可以看到三个必改项数据库密码MYSQL_PASSWORD/MYSQL_ROOT_PASSWORD均为Smartstore2022!生产环境务必修改数据卷映射D:/mount/smtenants/mysql:/app/App_Data/Tenants是 Windows 宿主机路径Linux/macOS 用户需改成自己的本地目录如./data/mysql用于持久化多租户数据命名卷mysql:/var/lib/mysql保证 MySQL 数据文件独立持久化docker volume ls可查看。验证容器状态docker compose ps docker compose logs -f web进阶容器化部署 SQL ServerExpress如果你的业务习惯用微软技术栈Smartstore 同样支持。打开 docker-compose.sqlserver.yml数据库服务切换为官方镜像mcr.microsoft.com/mssql/server关键环境变量如下环境变量值含义SA_PASSWORDSmartstore2022!SA 账户密码需满足复杂度策略ACCEPT_EULAY接受 SQL Server 许可协议必填否则容器启动失败MSSQL_PIDExpress使用免费的 Express 版本组合两个 compose 文件启动由于 SQL Server 文件是覆盖层需要用-f传入两个文件docker compose -f docker-compose.yml -f docker-compose.sqlserver.yml up -d两个文件的db服务会合并mssql/server镜像覆盖mysql镜像。SQL Server 数据通过两个命名卷持久化mssql_system:/var/opt/mssql/和mssql_user:/var/opt/sqlserver/。端口选择小技巧 SQL Server 对外映射为1434:1433避开宿主机的 1433 端口MySQL 映射为3307:3306同理避开 3306如需远程调试数据库记得把这两个宿主机端口加入防火墙放行列表仅站内访问则可以删除ports段让数据库只在 compose 内部网络可达——这是更安全的做法。如何构建自己的 Smartstore Docker 镜像不想直接用官方镜像仓库根目录的 Dockerfile 展示了完整的多阶段构建流程值得学习构建阶段基于mcr.microsoft.com/dotnet/sdk:10.0-noble复制解决方案后执行dotnet build与dotnet publish运行阶段切换到精简的dotnet/aspnet:10.0-noble镜像只拷贝发布产物大幅缩小体积预装 PDF 引擎通过 install-wkhtmltopdf.sh 安装 wkhtmltopdf订单凭证 PDF 生成的依赖脚本还会校验 SHA-256 并做一次渲染自检确保镜像构建期就能发现问题启动入口./Smartstore.Web --urls http://0.0.0.0:80同时暴露 80/443 端口。官方提供了三种镜像构建脚本详见 deployment-and-build.mddockerize.linux.sh—— 容器内完整编译最省心NoBuild.Dockerfile —— 跳过编译直接打包本地构建产物速度最快Nano.Dockerfile —— 面向Windows Nano Server容器的超小运行时方案。生产环境部署 5 个实用技巧 ✅反向代理与 HTTPS生产环境建议在容器前挂 Nginx/反代。appsettings.json 中ReverseProxy段默认开启 ForwardedHeaders 中间件会自动处理X-Forwarded-Proto/X-Forwarded-Host等头部容器后方的 SSL 终止可直接生效数据持久化三件套数据库命名卷mysql/mssql_system 站点数据目录挂载/app/App_Data/Tenants 媒体文件目录三者都要落到宿主机或 NAS 上并纳入备份策略修改默认密码Smartstore2022!出现在所有 compose 文件中上线前统一替换为自己的高强度密码资源限制SQL Server 容器内存占用较高建议在 compose 中为 db 服务加mem_limit或deploy.resources限制防止小规格服务器被打满平滑升级restart: unless-stopped已内置升级时只需拉新镜像后docker compose up -d数据卷不受影响。常见问题速查FAQQdocker compose up后页面打不开A先docker compose ps看 web 容器是否Up状态再docker compose logs -f web查看是否还在初始化数据库迁移。首次启动跑迁移需要一点时间耐心等待。Q宿主机已装 MySQL端口冲突怎么办Acompose 已默认把 MySQL 映射到宿主机3307端口。若 3307 也被占用改docker-compose.yml中ports的宿主机一侧即可容器内始终是 3306不用动。Q想用 PostgreSQL 而不是 MySQL/SQL ServerA直接使用 docker-compose.postgres.yml数据库用户super_admin端口5432结构与 MySQL 方案完全一致。总结借助官方的三套 docker-compose 编排与预构建镜像Smartstore 的容器化部署真的可以一键完成求快docker compose -f docker-compose.yml up -d→ MySQL 方案 3 分钟上线求稳叠加 docker-compose.sqlserver.yml 覆盖层 → SQL Server Express 方案求定制参考 Dockerfile 自行构建镜像用 NoBuild 变体加速 CI/CD。掌握这套流程后你可以在开发、测试、生产环境之间快速复制一致的电商部署环境——这正是容器化最大的价值。【免费下载链接】SmartstoreA modular, scalable and ultra-fast open-source all-in-one eCommerce platform built on ASP.NET Core 10项目地址: https://gitcode.com/GitHub_Trending/smar/Smartstore创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑