如果尝试使用VS Code的Remote-containers来开发WordPress,WordPress将无法启动
首先
我想用Docker来进行WordPress的开发,所以我创建了一个docker-compose.yml文件,尝试使用VSCode的Remote-container,但是无法使用。我已经解决了这个问题,并记录下来以备忘。
失败的步骤
根据以下内容创建 docker-compose.yml 文件:
参考:dockerhub/wordpress
参考:快速入门:Compose 和 WordPress
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
使用VSCode打开项目文件夹,然后选择”在容器中打开文件夹”并选择项目文件夹。
选择使用现有的Docker Compose,并选择[wordpress]作为开发服务。


尝试过的事情。
使用相同的docker-compose.yml文件,通过命令行执行成功。
$ docker compose up -d

成功步骤
我修改了创建VS Code的远程容器时生成的.devcontainer内的内容,不再挂载工作区。
■更改前(为了易读性,省略了评论)
version: '3'
services:
wordpress:
volumes:
- .:/workspace:cached
command: /bin/sh -c "while sleep 1000; do :; done"
{
"name": "Existing Docker Compose (Extend)",
"dockerComposeFile": [
"../docker-compose.yml",
"docker-compose.yml"
],
"service": "wordpress",
"workspaceFolder": "/workspace",
"settings": {},
"extensions": []
}
■改动之后
version: '3'
services:
wordpress:
volumes:
- .:/workspace:cached
command: /bin/sh -c "while sleep 1000; do :; done"
{
"name": "Existing Docker Compose (Extend)",
"dockerComposeFile": [
"../docker-compose.yml",
//"docker-compose.yml"
],
"service": "wordpress",
"workspaceFolder": "/var/www/html",
"settings": {},
"extensions": []
}
在使用了此.devcontainer的情况下,重新加载以下结构的projectfolder后,可以顺利地连接到WordPress。
请注意,即使容器似乎已启动,但它需要相当长的时间才能创建/var/www/html/目录。请耐心等待,直到目录逐渐创建完成。
projectfolder
ー.devcontainer
ーdevcontainer.json // 変更後ファイル
ーdocker-compose.yml // 変更後ファイル
ーdocker-compose.yml

请注意
由于重建有时无法正确捕捉到更改,所以稍微费了些功夫,但是在修改设置后进行了以下操作确认。
$ docker stop {wordpress用containerID} {mysql用containerID}
$ docker rm {wordpress用containerID} {mysql用containerID}
$ rm -fr projectfolder/db_data
$ rm -fr projectfolder/{その他マウントしているフォルダがあれば}
最后
我不太清楚根本原因。(虽然我等了一个多小时,也许会创建,但我等不了)
尝试更改WordPress服务的挂载点,行为有些变化,但无法连接到WordPress的Web服务仍然没有改变,
我打算在修改后的状态下,继续进行开发,唯一可以连接的是将”workspaceFolder”修改为”/var/www/html”。