如何配置Docker以开发和部署自定义主题?


12

我开始使用Docker,但是对WordPress专业开发实践还是不熟悉。我想在我的Mac上设置一个Docker开发环境,以便可以进行自定义WordPress主题开发。

假设您之前已经做过并且已经在使用Docker,那么如何设置呢?您的Dockerfile和docker-compose.yml是什么样的?我敢肯定这已经做过。如果已经有单行命令可以为您进行设置,我不会感到惊讶。

更新:我已将本主题缩小为以下问题:

如何配置Docker以开发和部署自定义主题?


我只需要删除两个仅链接的答案。由于您的问题有8票赞成票,您介意将其范围缩小到一个可解决的问题吗?
kaiser

@kaiser“专业WordPress开发”的文献记录不充分,因此许多人(包括我自己)试图学习如何以专业的方式使用WordPress来开发和部署自定义WordPress主题。使用Docker有助于创建一个反映生产环境的环境,但这也是一个新领域,所以我想知道人们如何将Docker整合到他们的WordPress开发工作流中。
安德鲁(Andrew)

安德鲁,请看一下这段文字,看看我们在这个网站上会公开哪些问题。就目前而言,您的问题是非常主观的,开放式的,并且仅会吸引基于意见的观点或仅链接答案。请更改此设置,否则我们将不得不关闭问题。谢谢。
kaiser

@kaiser好的,我已尽最大努力将其更改为更集中的问题。
安德鲁(Andrew)

Answers:


7

我将发布部分答案以开始讨论,以期获得一些有用的评论以填补空白或替代答案...

步骤1:安装和设置boot2docker

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以便您不必在每次打开新的终端窗口时都运行命令。

步骤2:安装docker-compose

有一个名为docker-compose(最初称为fig)的Docker插件,它使定义Docker容器之间的关系变得非常容易。您也可以使用Homebrew安装它:

brew install docker-compose

步骤3:建立docker-compose.yml

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容器内的新主题目录。

步骤4:启动容器

运行docker-compose up,您将设置两个运行WordPress安装的Docker容器(“ wordpress”和“ db”)。

步骤5:在浏览器中打开网站

我们的docker-compose.yml配置指定我们将端口80转发到端口8080。此外,boot2docker在特定IP地址上运行其VM。因此,为了弄清楚URL,我们需要使用以下boot2docker ip命令:

open http://$(boot2docker ip):8080

问题

现在我已经启动并运行了容器,我有几个问题...

  1. 除了复制和粘贴列表中列出的导出内容外,是否存在一种自动设置boot2docker环境变量的方法boot2docker shellinit

  2. 在使用Rails应用程序时,我喜欢使用Pow,以便可以使用命名.dev域访问该应用程序,而不必使用特定的端口/ IP。如何配置系统(或Pow),以便可以使用http://mysite.dev访问主机?

  3. 我错过了任何步骤吗?还是应该在最后添加任何步骤?


对于第二个问题。您可以尝试使用docker nginx代理:github.com/jwilder/nginx-proxy
李哲

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.