我想在 Docker 上运行现有的 Wordpress 网站以进行本地开发。
这是我的 docker-compose 文件:
version: '2'
services:
mysql:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
ports:
- "9306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: example_password
MYSQL_DATABASE: example_database_name
wordpress:
image: wordpress
volumes:
- "./:/var/www/html"
links:
- mysql
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_PASSWORD: example_password
WORDPRESS_DB_NAME: example_database_name
但是,我对官方 Wordpress Docker 镜像的问题是它坚持安装 Wordpress。如果您没有安装 Wordpress,这没什么问题,但如果已经安装了它,则会导致很多问题。这尤其令人沮丧,因为我组织了文件夹,因此所有内部 WordPress 文件都位于一个名为“wp”的单独文件夹中,“wp-content”位于单独的目录中。
所以我的问题是如何使用 Docker 运行我的现有Wordpress 站点。
使用官方的Wordpress镜像,Docker将启动一个使用Debian作为基础系统的容器,安装了apache、php和wordpress。如果您不喜欢它,您可以通过创建 Dockerfile 来创建自定义镜像。您可以丢弃任何不需要的组件。
如果您想使用官方映像,最好的选择是安装
wp-content
目录而不是整个 www
目录,例如:
-v /path/to/my/blog/wp-content:/var/www/html/wp-content
并调整涉及“wp”目录的自定义设置。 Wordpress 需要特定的目录结构,因此根据您分解文件的原因,您可能会或可能无法使用默认容器。以这种方式使用它的好处是,您只需更新容器即可更新 WP,并且所有文件都将受到保护。
如果您的需求过于自定义,如上所述,您可以尝试使用 WP Dockerfile 并进行编辑以满足您的需求,但如果您可以使用标准的
wp-content
结构,这将使事情更易于管理和维护。
作为一般建议,您应该能够将源作为卷安装在覆盖现有单个文件或完整目录的路径上,以根据您的需要定制容器。
第 1 步:在
wordpress
服务块中,您应该更新 volumes
属性,如下所示:
volumes:
- ./source:/var/www/html
source
是目录的名称,将在包含 WordPress 源代码的同一路径中创建。您可以将其自定义为您想要的任何名称。
第 2 步:将
wp-content
中现有源中的所有子文件夹复制到第 1 步中的新目录 (source\wp-content
)