Docker撰写WordPress的例子

我一直在遵循快速入门指南:撰写和Wordpress,并不能得到它的工作。

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

更新:当我input加载PHP服务器返回的网站时, “无法正常工作”

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

你的DockerfileDockerfile docker-compose.yml应该在你的wordpress目录中。 (你改名的代码)

你的困惑

出于某种原因,你认为有一个代码目录涉及。 在wordpress中没有这样的目录,这是完全正常的。

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

  • Dockerfile

ADD . /code

这一行有效地将指定的目录(在这里)复制到指定的容器目录(这里是/代码)。

它只相当于从主机复制到容器的cp命令。

  • docker-compose.yml

volumes: - .:/code

这个命令将一个目录暴露给一个容器。 这里我们公开主机目录。 进入容器目录/代码。

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

为什么它不工作

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

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

所以当PHP尝试执行在/代码它不会看到他期望的文件,因此没有发现错误。

修理它

DockerfileDockerfile docker-compose.yml到代码目录(您重命名的目录)中。

或者修改DockerfileDockerfile docker-compose.yml使它们指向正确的目录。

通过仔细看看这个快速入门指南: Dockerfile和撰写文件应该在你开始创build的wordpress项目文件夹中。 而且在wordpress文件夹里面应该有一个子文件夹code 。 从这个方式应该工作的wordpress文件夹中运行docker-compose

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