首页 > 解决方案 > 已安装的软件包和 /home/* 文件有时会在 ddev 重新启动(或 ddev 停止、启动)时重置

问题描述

我已经使用 DDEV 几天了,它很棒。

但是我发现如果我运行ddev sshssh 进入容器,并通过npm / aptitudeetc 安装包,或者如果我在~/主目录中创建新文件,有时这些包/文件会在我ddev stop > ddev startddev restart

它不会一直发生,只是有时会发生。我已经重新启动了很多次,但我无法确定包/文件何时被擦除以及何时不被擦除的任何模式。

我浏览了配置文件、文档和 github 问题队列,但我找不到任何关于它的信息。我在ddev安装了 Homebrew 的 Mac 上运行。我有最新版本的 Docker 和 Docker Compose。

我的问题是:如何才能使我安装的软件包/文件在我重新启动时仍然存在ddev

非常感谢。

标签: dockerdocker-composeddev

解决方案


当您刚刚ddev ssh安装时,当容器被重新创建或 rm'd 时,所有东西都会被丢弃。

编辑:从 ddev v1.8.0 开始,您可以使用webimage_additional_packages: [php7.1-ldap],请参阅文档

原始方法:

试试docs中的这个 post-start hook 示例。这种通用方法应该很好用。

hooks:
    post-start:
      # Install php modules and then tell php-fpm to reload
      - exec: "sudo apt-get update && sudo apt-get install -y php7.1-ldap php7.1-tidy && killall -HUP php-fpm"

推荐阅读