prestashop/base8, latest, 8-apache8-fpmnightly(来自git的最新但不稳定版本)可使用这些标签,例如:
bashdocker run -ti --name my-docker-name -e PS_DEV_MODE=false -e PS_INSTALL_AUTO=0 -p 8080:80 -d prestashop/prestashop:8.0
PrestaShop是一款免费开源的电商Web应用,致力于为商家和客户提供最佳购物车体验。它采用PHP编写,高度可定制,支持所有主要支付服务,已翻译成多种语言并针对多个国家本地化,具有全响应式设计(前后台均支持)等。查看所有可用功能。
[***]
!PrestaShop后台仪表板
这些镜像基于官方PHP仓库的最新版本运行。对于数据库,可使用并链接任何与MySQL兼容的SQL服务器。
若您没有MySQL服务器,运行此容器最简单的方法如下:
bash# 创建容器通信网络 docker network create prestashop-net # 启动mysql 5.7容器 docker run -ti --name some-mysql --network prestashop-net -e MYSQL_ROOT_PASSWORD=admin -p 3307:3306 -d mysql:5.7 # 启动prestashop容器 docker run -ti --name some-prestashop --network prestashop-net -e DB_SERVER=some-mysql -p 8080:80 -d prestashop/prestashop:latest
将创建一个新商店,准备安装。
您可通过访问http://localhost:8080使用该商店。
MySQL服务器可通过以下方式访问:
$ mysql -uroot -padmin -h localhost --port 3307)some-mysql。例如,当进入"数据库配置"安装步骤时,安装程序会要求"服务器数据库地址",输入some-mysql即可。
若需自定义容器执行,以下是可用选项:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| PS_DEV_MODE | 设置常量_PS_MODE_DEV_为true | 0 |
| PS_HOST_MODE | 设置常量_PS_HOST_MODE_为true,用于模拟PrestaShop Cloud环境 | 0 |
| PS_DEMO_MODE | 设置常量_PS_DEMO_MODE_为true,用于创建演示商店 | 0 |
| DB_SERVER | 若设置,将使用外部MySQL数据库而非临时内部数据库 | localhost |
| DB_USER | 覆盖默认MySQL用户 | root |
| DB_PASSWD | 覆盖默认MySQL密码 | admin |
| DB_PREFIX | 覆盖默认数据表前缀 | ps_ |
| DB_NAME | 覆盖默认数据库名称 | prestashop |
| PS_INSTALL_AUTO | 执行自动安装,加快镜像初始化(PrestaShop 1.5及以上支持),某些配置可能需要同时设置PS_DOMAIN或PS_HANDLE_DYNAMIC_DOMAIN | 0 |
| PS_ERASE_DB | 删除MySQL数据库,所有先前数据将丢失 | 0 |
| PS_INSTALL_DB | 创建MySQL数据库 | 0 |
| PS_DOMAIN | 自动安装时指定商店访问地址,供高级用户使用 | |
| PS_LANGUAGE | 更改PrestaShop默认安装语言 | en |
| PS_COUNTRY | 更改PrestaShop默认安装国家 | GB |
| PS_ALL_LANGUAGES | 安装当前版本的所有可用语言 | 0 |
| PS_FOLDER_ADMIN | 更改管理文件夹名称 | admin |
| PS_FOLDER_INSTALL | 更改安装文件夹名称 | install |
| PS_ENABLE_SSL | 安装时启用SSL | 0 |
| ADMIN_MAIL | 覆盖默认管理员*** | *** |
| ADMIN_PASSWD | 覆盖默认管理员密码 | prestashop_demo |
若您的IP/端口(或域名)在容器两次执行之间发生变化,需修改以下选项:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| PS_HANDLE_DYNAMIC_DOMAIN | 添加特定配置以处理动态域名 | 0 |
用户文档(默认英文)可在此处获取。
开发者文档(仅英文)可在此处获取。
在Mac或Windows(通过WSL)上使用Docker时,可能无法从主机浏览器访问PrestaShop(重定向到"dockeripaddress:8080"失败)。
Docker for Mac存在桥接网络问题,无法通过内部IP访问容器。安装后,主机浏览器会从http://localhost:8080重定向到http://<prestashop容器内部IP>:8080,导致失败。
需将PS_DOMAIN变量设置为localhost:8080,命令如下:
bashdocker run -ti --name some-prestashop --network prestashop-net -e DB_SERVER=some-mysql -e PS_DOMAIN=localhost:8080 -p 8080:80 -d prestashop/prestashop
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: ...
若mysql镜像使用MySQL 8,认证插件从mysql_native_password更改为caching_sha2_password。可通过强制使用旧认证插件解决:
bashdocker run -ti -p 3307:3306 --network prestashop-net --name some-mysql -e MYSQL_ROOT_PASSWORD=admin -d mysql --default-authentication-plugin=mysql_native_password
ERROR 1045 (28000): Access denied for user '...'@'...' (using password: YES)
某些情况下需强制使用TCP而非套接字:
bashmysql -u root -padmin -h localhost --port 3307 --protocol=tcp
Server sent charset (255) unknown to the client. Please, report to the developers
MySQL 8默认字符集改为utfmb4,部分客户端不支持。需修改MySQL配置文件:
若使用mysql容器,需:
/etc/mysql/my.cnf,添加:[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
更多信息,请阅读HOW-TO-USE.md文件

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务