简介:
我正在尝试运行一些WP-CLI命令来进行维护,作为我在生产站点上发布过程的一部分。我可以成功地对下面的docker-compose文件执行以下命令。
docker-compose run wp-cli_collinmbarrett-com core updatedocker-compose run wp-cli_collinmbarrett-com plugin update --alldocker-compose run wp-cli_collinmbarrett-com theme update --alldocker-compose run wp-cli_collinmbarrett-com db optimize我在站点上安装了一个插件(可湿性粉剂),它添加了自己的WP-CLI命令。当我尝试运行这个命令时,它失败了。
docker-compose run wp-cli_collinmbarrett-com sweep --all
/usr/local/bin/docker-entrypoint.sh: exec: line 15: sweep: not found在非坞化的设置中,我已经验证了WP-CLI的WP-扫描命令是成功的.
问题:
如何在带有Docker的容器化环境中运行插件安装的WP-CLI命令?我是否需要让WP-CLI容器知道所安装的插件,而不是共享卷?
我的docker-compose.yml**:**
version: "3.7"
services:
wp_collinmbarrett-com:
image: wordpress:fpm-alpine
restart: always
networks:
- reverse-proxy
- collinmbarrett-com
depends_on:
- mariadb_collinmbarrett-com
volumes:
- collinmbarrett-com_files:/var/www/html
mariadb_collinmbarrett-com:
image: mariadb:latest
restart: always
networks:
- collinmbarrett-com
volumes:
- collinmbarrett-com_data:/var/lib/mysql
wp-cli_collinmbarrett-com:
image: wordpress:cli
networks:
- collinmbarrett-com
volumes:
- collinmbarrett-com_files:/var/www/html
networks:
reverse-proxy:
external:
name: wp-host_reverse-proxy
collinmbarrett-com:
volumes:
collinmbarrett-com_files:
collinmbarrett-com_data:GitHub上的完整配置。
发布于 2022-02-16 12:31:34
不直接响应您的命令需求(我还没有尝试),但我想与您分享我正在使用的所有配置,希望它能帮助您。
我的docker-compose.yml有:
services:
...
# Mysql container
db:
...
# Wordpress container
wp:
...
wpcli:
image: wordpress:cli
user: "33:33"
volumes:
# necessary to write to the filesys
- ./php-config/phar.ini:/usr/local/etc/php/conf.d/phar.ini
- wp_app:/var/www/html
- /tmp/wp-temp:/tmp/wp-temp
environment:
HOME: /tmp/wp-temp
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: $WORDPRESS_DB_USER
WORDPRESS_DB_PASSWORD: $WORDPRESS_DB_PASSWORD
WORDPRESS_DB_NAME: $WORDPRESS_DB_NAME
depends_on:
- db
- wp
volumes:
wp_app: {}
...请注意,正如在上提到的,在/wordpress中作为任意用户运行的部分
当通过这个映像的cli变体运行WP-CLI时,需要注意的是,它们是基于阿尔卑斯的,并且有一个默认用户使用阿尔卑斯的www-data,其UID为82 (与基于Debian的WordPress变体的默认有效UID为33相比),所以当对现有的基于Debian的WordPress安装运行cli时,类似-用户33:33可能是必要的(可能还有-e HOME=/tmp (取决于调用的wp命令)以及它是否尝试使用~/wp-cli)。
您需要将WP-CLI用户定义为具有用户id和组id = 33的www-数据。这就是我定义user: "33:33"的原因。此外,该命令可能需要下载临时内容,因此我定义了一个HOME环境设置。还请注意,主机HOME 中的映射也应该与用户33:33所有权in一起分配,否则WP无法写入文件。
而且,WPCLI映像中的PHP.ini将phar.readonly设置为On,因此需要重写它。我添加了一个特定的./php-config/phar.ini文件,其中包含了该覆盖:
phar.readonly = Off为了执行插件安装,我会在我的docker-compose.yml文件夹上执行以下命令:
docker-compose run --rm wpcli plugin install wp-mail-smtp --force --allow-root请注意,--force --allow-root是可选的。
https://stackoverflow.com/questions/57136171
复制相似问题