使用 docker-compose 配置 Prestashop Webservice

Configure Prestashop Webservice using docker-compose

我正在尝试使用 docker 容器来简化 Prestashop 的安装。我的问题是容器在加载后必须 API 就绪,但我找不到从 docker-compose.

启用此功能的方法

我要实现的目标:

  1. 启用 Prestashop 的网络服务
  2. 创建网络服务密钥
  3. 为网络服务创建权限
  4. 能够从 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 网站上的 documentation,这些命令可以使用 PHP 完成,但是,我无法确定如何正确 运行 这些 PHP 来自 docker-compose 设置的命令

也可以从docker-compose

修改以下内容

您需要在您的容器或挂载卷中使用专用的 PHP 脚本 你需要 bootstrap Prestashop 框架的地方 (包括 /init.php/config/config.inc.php)这样你就可以启动那些 Prestashop 核心命令之后。

cointaner启动后可以使用dockerexec执行:

docker exec -it -w $PWD php_worker php /home/my_post_install_script.php

关于修改货币选项,看看 classes/Currency.php ,那里有所有与货币对象交互的方法。

关于更新 shop main activity,这是配置 table 中的 PS_SHOP_ACTIVITY 键,所以

Configuration::updateValue(PS_SHOP_ACTIVITY, your_id) 

会成功的。您可以在后台下拉列表中找到各种选项值。