如何重新定位移动到不同目录的 DDEV 项目?
How to relocate DDEV project that was moved to different directory?
场景
- DDEV 项目已从
/home/old-path/project-name
移至 /home/new-path/project-name
- 在新位置执行
ddev start
显示以下错误
Unable to get project(s): stat /home/old-path/project-name: no such
file or directory
问题
需要哪些步骤才能"relocate"目录并启动 DDEV 并再次运行?
请ddev rm -a
停止所有运行或停止的项目,然后在新目录中ddev start
。我唯一能猜到的是该项目在旧目录中 stopped。 ddev 项目不需要重定位,除了 运行 或已停止容器中的完整路径外,不知道它们所在的目录。
分析
由于 DDEV 概述了正确的旧路径名,它也必须存储在某个地方。我分析了目录 ~/.ddev/project-name/
,但在那里找不到任何指向旧路径名的指针。这些信息似乎存储在其他地方。
Docker 容器
执行 docker ps -a | grep project-name
显示如下:
1f4eb31fc94e drud/ddev-webserver:v1.3.0 "/start.sh" 2 months ago Exited (0) 2 months ago ddev-project-name-web
052ecb7c3e1b drud/phpmyadmin:v1.3.0 "/run.sh phpmyadmin" 2 months ago Exited (0) 2 months ago ddev-project-name-dba
b9d71147a54f drud/ddev-dbserver:v1.3.0 "/docker-entrypoint.…" 2 months ago Exited (0) 2 months ago ddev-project-name-db
并执行 docker inspect ddev-project-name-web | grep '/home/old-path/project-name'
显示附加信息:
"/home/old-path/project-name/.ddev:/mnt/ddev_config:ro",
"/home/old-path/project-name:/var/www/html:cached"
"Source": "/home/old-path/project-name/.ddev",
"Source": "/home/old-path/project-name",
"com.ddev.approot": "/home/old-path/project-name",
宾果!旧路径名存储在 Docker 个容器中。并且由于我的(有价值的)源仅安装到此 Docker 容器,因此通过执行 docker rm ddev-project-name-web
删除此容器似乎是安全的。使用 ddev start
在新目录中再次启动 DDEV 现在又可以工作了...
总结
鉴于 DDEV 项目被命名为 project-name
...
docker rm ddev-project-name-web
cd /home/new-path/project-name
ddev start
有一个名为 global_config.yaml
的文件位于您用户的主 .ddev
文件夹中
(在我的 windows 机器上是 C:\Users\username\.ddev
)。
在此文件中,您会找到 project_info:
部分,其中列出了您的项目及其路径。如果您移动了项目文件,您可以在此处输入新路径。
如果您将文件移动到另一个磁盘,您还必须转到 docker Settings>Resources>File Sharing
并确保在此处启用新磁盘并绑定安装。
也使用 ddev rm --unlist 一旦你使用了 ddev rm 。 不确定它是否是最近添加到CLI
我必须执行“ddev stop --unlist projectname”和“ddev start”。不能说我是否丢失数据,因为它是一个 sqlite。
场景
- DDEV 项目已从
/home/old-path/project-name
移至/home/new-path/project-name
- 在新位置执行
ddev start
显示以下错误
Unable to get project(s): stat /home/old-path/project-name: no such file or directory
问题
需要哪些步骤才能"relocate"目录并启动 DDEV 并再次运行?
请ddev rm -a
停止所有运行或停止的项目,然后在新目录中ddev start
。我唯一能猜到的是该项目在旧目录中 stopped。 ddev 项目不需要重定位,除了 运行 或已停止容器中的完整路径外,不知道它们所在的目录。
分析
由于 DDEV 概述了正确的旧路径名,它也必须存储在某个地方。我分析了目录 ~/.ddev/project-name/
,但在那里找不到任何指向旧路径名的指针。这些信息似乎存储在其他地方。
Docker 容器
执行 docker ps -a | grep project-name
显示如下:
1f4eb31fc94e drud/ddev-webserver:v1.3.0 "/start.sh" 2 months ago Exited (0) 2 months ago ddev-project-name-web
052ecb7c3e1b drud/phpmyadmin:v1.3.0 "/run.sh phpmyadmin" 2 months ago Exited (0) 2 months ago ddev-project-name-dba
b9d71147a54f drud/ddev-dbserver:v1.3.0 "/docker-entrypoint.…" 2 months ago Exited (0) 2 months ago ddev-project-name-db
并执行 docker inspect ddev-project-name-web | grep '/home/old-path/project-name'
显示附加信息:
"/home/old-path/project-name/.ddev:/mnt/ddev_config:ro",
"/home/old-path/project-name:/var/www/html:cached"
"Source": "/home/old-path/project-name/.ddev",
"Source": "/home/old-path/project-name",
"com.ddev.approot": "/home/old-path/project-name",
宾果!旧路径名存储在 Docker 个容器中。并且由于我的(有价值的)源仅安装到此 Docker 容器,因此通过执行 docker rm ddev-project-name-web
删除此容器似乎是安全的。使用 ddev start
在新目录中再次启动 DDEV 现在又可以工作了...
总结
鉴于 DDEV 项目被命名为 project-name
...
docker rm ddev-project-name-web
cd /home/new-path/project-name
ddev start
有一个名为 global_config.yaml
的文件位于您用户的主 .ddev
文件夹中
(在我的 windows 机器上是 C:\Users\username\.ddev
)。
在此文件中,您会找到 project_info:
部分,其中列出了您的项目及其路径。如果您移动了项目文件,您可以在此处输入新路径。
如果您将文件移动到另一个磁盘,您还必须转到 docker Settings>Resources>File Sharing
并确保在此处启用新磁盘并绑定安装。
也使用 ddev rm --unlist 一旦你使用了 ddev rm 。 不确定它是否是最近添加到CLI
我必须执行“ddev stop --unlist projectname”和“ddev start”。不能说我是否丢失数据,因为它是一个 sqlite。