如果尝试使用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]作为开发服务。

スクリーンショット 2021-08-16 22.24.46.png
スクリーンショット 2021-08-16 22.25.41.png

尝试过的事情。

使用相同的docker-compose.yml文件,通过命令行执行成功。

$ docker compose up -d
スクリーンショット 2021-08-16 22.31.09.png

成功步骤

我修改了创建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
スクリーンショット 2021-08-16 22.31.09.png

请注意

由于重建有时无法正确捕捉到更改,所以稍微费了些功夫,但是在修改设置后进行了以下操作确认。

$ 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”。

广告
将在 10 秒后关闭
bannerAds