php - 使用 docker-compose 配置 Prestashop Web 服务
问题描述
我正在尝试通过使用 docker 容器来简化 Prestashop 的安装。我的问题是容器在加载后必须准备好 API,但我找不到从 docker-compose 启用此功能的方法。
我要完成的工作:
- 启用 Prestashop 的 Web 服务
- 创建网络服务密钥
- 为 Web 服务创建权限
- 能够从 Postman 修改产品、客户、地址等
到目前为止我做过的事情:
services:
prestashopper:
image: prestashop/prestashop
ports:
- 8080:80
environment:
- PS_LANGUAGE=en
- PS_COUNTRY=CO
- PS_FOLDER_ADMIN=admin_folder_name
- PS_FOLDER_INSTALL=install_folder_name
- PS_INSTALL_AUTO=1
- PS_DOMAIN=localhost:8080
- PS_WEBSERVICE=1
command:
[
# php -r 'Configuration::updateValue('PS_WEBSERVICE', 1);'
# php -r '$$apiAccess = new WebserviceKey();',
# php -r '$$apiAccess->key = GENERATED_KEY;',
# php -r '$$apiAccess->save();',
]
我的研究告诉我:
根据 PrestaShop 网站上的文档,这些命令可以使用 PHP 完成,但是,我无法确定如何从 docker-compose 设置中正确运行这些 PHP 命令
也可以从 docker-compose 修改以下内容
- 修改货币选项
- 换店的主要活动
解决方案
您需要在容器或挂载卷中使用专用 PHP 脚本来引导 Prestashop 框架(包括/init.php和/config/config.inc.php),以便之后启动这些 Prestashop 核心命令。
您可以在cointaner启动后使用 docker exec 执行它:
docker exec -it -w $PWD php_worker php /home/my_post_install_script.php
关于修改货币选项,请查看classes/Currency.php,所有与 Currency 对象交互的方法。
关于更新商店主要活动,这是配置表中的PS_SHOP_ACTIVITY键,所以
Configuration::updateValue(PS_SHOP_ACTIVITY, your_id)
会成功的。您可以在后台下拉列表中找到各种选项值。
推荐阅读
- ruby-on-rails - system_tests 和 test_framework 之间的区别
- qt - 即时更改 QPropertyAnimation 持续时间
- java - java:reduce vs anyMatch vs contains
- linux-kernel - 静默丢弃对 mmap 区域的写入
- c# - Asp.Net MVC C# 更新/编辑用户模型状态无效
- deserialization - Azure 服务总线中转消息反序列化
- python - 如何使用 argparse parse_args 将参数解析为 python 中的字符串?
- assembly - 如何快速将寄存器中的立即数转换为字符以存储在字符串中
- c++ - 如何在unix中获取当前工作目录中最大的文件?
- javascript - 告诉页面通过锚点聚焦元素的事实上的方式是什么?