问题描述
我正在尝试将w3-total-cache plugin安装在wp-cli
的wordpress docker映像中,但是它似乎试图连接到数据库,即使很难,我也不想激活它。在Dockerfile中,我使用composer安装了其他主题/插件,一切似乎都很好,但是我发现的w3tc
插件唯一的软件包是https://packagist.org/packages/finaldream/w3-total-cache,它不是官方的,而且似乎也没有启动至今(版本0.9.4.6
,而w3tc是版本0.14.4
)。
我可以在最终环境中的机器中将wp-cli
安装在计算机中,因为它具有数据库,但是看来我无法安装在CI环境中以创建带有预安装插件的Docker映像,而且我还没有找到其他问题和解决方案。
是否可以在没有数据库的情况下在CI环境中安装插件?(在最终环境中,无论是dev,staging还是Production,我只会调用{{1} }来激活插件,就像我对使用composer安装的插件所做的那样。
解决方法
我最终认为,在这种情况下,最好的选择是从wordpress中curl
压缩文件(因为最后wordpress插件主要是plugins
文件夹中的目录)。
我在dockerfile中添加了以下说明:
ENV W3TC_VERSION 0.14.4
RUN mkdir -p /var/www/html/web/app/plugins \
&& curl -L https://downloads.wordpress.org/plugin/w3-total-cache.${W3TC_VERSION}.zip \
-o /tmp/w3-total-cache.zip \
&& unzip /tmp/w3-total-cache.zip -d /var/www/html/web/app/plugins \
&& rm /tmp/w3-total-cache.zip \
&& chown -R www-data:www-data /var/www/html/web/app/plugins \
&& cp /var/www/html/web/app/plugins/w3-total-cache/wp-content/advanced-cache.php \
/var/www/html/web/app/advanced-cache.php \
&& chown www-data:www-data /var/www/html/web/app/advanced-cache.php \
&& mkdir -p /var/www/html/web/app/cache \
&& chown www-data:www-data /var/www/html/web/app/cache \
&& mkdir -p /var/www/html/web/app/w3tc-config \
&& chown www-data:www-data /var/www/html/web/app/w3tc-config
更新(2020-08-20)
我按照leymannx的建议进行操作,并在composer.json
文件的安装后指令中包含了一条指令,以使用以下命令来调用Shell脚本:
#!/bin/bash
set -eou pipefail
echo "$(date '+%F %X') Custom install - Start"
W3TC_VERSION=0.14.4
APP_DIR=/var/www/html/web/app
PLUGINS_DIR="$APP_DIR/plugins"
W3TC_URL="https://downloads.wordpress.org/plugin/w3-total-cache.${W3TC_VERSION}.zip"
if [ ! -d "$PLUGINS_DIR/w3-total-cache" ]; then
mkdir -p "$PLUGINS_DIR"
curl -L "$W3TC_URL" -o /tmp/w3-total-cache.zip
unzip /tmp/w3-total-cache.zip -d "$PLUGINS_DIR"
rm /tmp/w3-total-cache.zip
chown -R www-data:www-data "$PLUGINS_DIR"
cp "$PLUGINS_DIR"/w3-total-cache/wp-content/advanced-cache.php \
"$APP_DIR"/advanced-cache.php
chown www-data:www-data "$APP_DIR"/advanced-cache.php
mkdir -p "$APP_DIR"/cache
chown www-data:www-data "$APP_DIR"/cache
mkdir -p "$APP_DIR"/w3tc-config
chown www-data:www-data "$APP_DIR"/w3tc-config
fi
echo "$(date '+%F %X') Custom install - End"
(我还从Dockerfile
中删除了这些命令)
这使使用此wordpress环境的所有人的整个过程更加透明。