我开始使用Docker,但是对WordPress专业开发实践还是不熟悉。我想在我的Mac上设置一个Docker开发环境,以便可以进行自定义WordPress主题开发。
假设您之前已经做过并且已经在使用Docker,那么如何设置呢?您的Dockerfile和docker-compose.yml是什么样的?我敢肯定这已经做过。如果已经有单行命令可以为您进行设置,我不会感到惊讶。
更新:我已将本主题缩小为以下问题:
我开始使用Docker,但是对WordPress专业开发实践还是不熟悉。我想在我的Mac上设置一个Docker开发环境,以便可以进行自定义WordPress主题开发。
假设您之前已经做过并且已经在使用Docker,那么如何设置呢?您的Dockerfile和docker-compose.yml是什么样的?我敢肯定这已经做过。如果已经有单行命令可以为您进行设置,我不会感到惊讶。
更新:我已将本主题缩小为以下问题:
Answers:
我将发布部分答案以开始讨论,以期获得一些有用的评论以填补空白或替代答案...
Docker仅在Linux上运行。因此,为了在我们的Mac上使用Docker,我们需要安装boot2docker
,它将在Linux VM中运行Docker。您可以boot2docker
使用Homebrew安装:
brew install boot2docker
安装完成后,设置并启动boot2docker:
boot2docker init
boot2docker start
接下来,我们需要运行一个命令来设置一些环境变量,以便docker-compose将知道在我们的boot2docker VM中找到Docker。
eval "$(boot2docker shellinit)"
您可能需要添加将变量导出到您的行,~/.bash_profile
以便您不必在每次打开新的终端窗口时都运行命令。
有一个名为docker-compose
(最初称为fig
)的Docker插件,它使定义Docker容器之间的关系变得非常容易。您也可以使用Homebrew安装它:
brew install docker-compose
Docker注册表中有一个官方的WordPress Docker映像。它包括一些有关手动启动Docker的信息,其中包括使它正常运行所需的所有命令行标志。据我所知,您可以跳过所有操作,因为我们将使用docker-compose
。在将要处理WordPress主题的目录中,创建docker-compose.yml
具有以下内容的:
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
volumes:
- .:/var/www/html/wp-content/themes/my-theme-name
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
该volumes
配置将当前目录中的主题文件链接到Docker容器内的新主题目录。
运行docker-compose up
,您将设置两个运行WordPress安装的Docker容器(“ wordpress”和“ db”)。
我们的docker-compose.yml
配置指定我们将端口80转发到端口8080。此外,boot2docker
在特定IP地址上运行其VM。因此,为了弄清楚URL,我们需要使用以下boot2docker ip
命令:
open http://$(boot2docker ip):8080
现在我已经启动并运行了容器,我有几个问题...
除了复制和粘贴列表中列出的导出内容外,是否存在一种自动设置boot2docker环境变量的方法boot2docker shellinit
?
在使用Rails应用程序时,我喜欢使用Pow,以便可以使用命名.dev
域访问该应用程序,而不必使用特定的端口/ IP。如何配置系统(或Pow),以便可以使用http://mysite.dev访问主机?
我错过了任何步骤吗?还是应该在最后添加任何步骤?
我的首选解决方案是将Composer与Docker结合使用。Docker处理环境,Composer处理依赖项,其中包括主题,插件以及我可能需要的任何其他软件包。
这是我自己的本地Docker设置:
https://github.com/alexmacarthur/wp-skateboard
这是一个使用Composer下载_s主题并将其放置在我的themes
目录中的分支:
https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores