【问题标题】:Docker Compose Wordpress exampleDocker 撰写 Wordpress 示例
【发布时间】:2015-07-27 08:00:33
【问题描述】:

我一直在关注Quickstart Guide: Compose and Wordpress,但无法让它工作。

我认为这与我的目录结构有关。运行所有步骤后,我有一个名为wordpress 的子目录,但我认为我的所有代码都引用了一个名为code 的子目录,所以我决定重命名我的wordpress 目录code。然后我重新运行docker-compose up,但不幸的是这也没有用。

更新:“无法让它工作” 当我进入加载网站时 PHP 服务器返回:

Not Found
The requested resource / was not found on this server

【问题讨论】:

  • 究竟是什么不起作用?您能否添加一些日志或控制台输出?
  • 你把你的 Dockerfile 放到解压的 wordpress 目录里了吗?
  • @h3nrik 我已经更新了这个问题,希望这能澄清你的问题
  • @Regan Dockerfile 在 wordpress 目录上方 这里是目录结构的链接pastebin.com/xTs6EfWR
  • @jamesmstone 你能上传你的 Dockerfile 和你的 docker-compose.yml 吗?

标签: php wordpress docker docker-compose


【解决方案1】:

您的 Dockerfiledocker-compose.yml 应该在您的 wordpress 目录中。 (你重命名的那个)

你的困惑

出于某种原因,您认为涉及到代码目录。您的 wordpress 中没有这样的目录,它完全正常。

让我们分解一下令你困惑的命令:

  • Dockerfile

ADD . /code

此行用于将指示的目录(此处为 . )复制到指示的容器目录(此处为 /code)。

它相当于一个cp命令,只是你从主机复制到容器。

  • docker-compose.yml

volumes: - .:/code

此命令将目录公开给容器。这里我们公开主机目录。进入容器目录/code。

注意:如果您了解卷,您可能会意识到 Dockerfile 中的 ADD 指令是不必要的。

为什么它不起作用

您的docker-compose.ymlDockerfile 位于预期工作目录之上。

所以当 docker-compose 执行时,它会将你当前目录的内容复制到容器的 /code 目录中。

因此,当 php 尝试在 /code 中执行时,它看不到他期望的文件,因此出现 Not found 错误。

修复它

Dockerfiledocker-compose.yml 复制到代码目录(您重命名的目录)中。

或者修改Dockerfiledocker-compose.yml,让它们指向好的目录。

【讨论】:

    【解决方案2】:

    仔细查看该快速入门指南:Dockerfile 和撰写文件应位于您一开始创建的 wordpress 项目文件夹中。在wordpress 文件夹内也应该有一个子文件夹code。从wordpress 文件夹中运行docker-compose,这样应该可以工作。

    不幸的是,当您从 wordpress 项目文件夹中运行 curl https://wordpress.org/latest.tar.gz | tar -xvzf - 命令时,它会在您的项目目录下创建另一个文件夹 wordpress。你应该把那个重命名为code

    【讨论】:

    • 我更新了我的答案,使其更加准确。
    • 不幸的是,这仍然给出了同样的错误。希望这可能会有所帮助。这是我的文件结构的样子:pastebin.com/xTs6EfWR 这是来自(父)wordpress 目录,也就是项目目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2021-07-26
    相关资源
    最近更新 更多