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

时间:2015-05-05 作者:Andrew

我刚开始接触Docker,对于专业的WordPress开发实践,我还是个新手。我想建立一个Docker开发环境(在我的Mac上),以便我可以自定义WordPress主题开发。

假设您之前已经这样做过,并且已经在使用Docker,您是如何设置的?Dockerfile和docker组成什么。yml看起来像?我相信这之前已经做过了。如果已经有一行命令可以为您设置这一点,我不会感到惊讶。

Update: 我把这个话题缩小到以下问题:

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

2 个回复
SO网友:Andrew

我将发布一个部分答案来开始讨论,希望得到一些有用的评论来填补空白或其他答案。。。

步骤1:安装和设置boot2docker,Docker仅在Linux上运行。因此,为了在Mac上使用Docker,我们需要安装boot2docker, 它将在Linux虚拟机中运行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容器之间的关系非常容易。您也可以使用自制软件进行安装:

brew install docker-compose
第3步:创建docker compose。yml有一个official WordPress Docker image 在Docker注册表中。它包括一些关于手动启动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
Thevolumes 配置将当前目录中的主题文件链接到Docker容器中的新主题目录。

步骤4:启动容器运行docker-compose up 您将设置两个Docker容器(“wordpress”和“db”),运行wordpress的安装。

步骤5:在浏览器中打开网站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?

  • 有没有我错过的步骤?或者是否有任何步骤应添加到末尾?

  • SO网友:Alex MacArthur

    我的首选解决方案是将Composer与Docker结合使用。Docker处理环境,Composer处理依赖项,其中包括主题、插件和我可能需要的任何其他包。

    以下是我自己的本地Docker设置:

    https://github.com/alexmacarthur/wp-skateboard

    这里有一个分支,它使用Composer下载主题并将其放在我的themes 目录:

    https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores

    结束

    相关推荐

    Admin Theme customization

    我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register