docker - 已安装的软件包和 /home/* 文件有时会在 ddev 重新启动(或 ddev 停止、启动)时重置
问题描述
我已经使用 DDEV 几天了,它很棒。
但是我发现如果我运行ddev ssh
ssh 进入容器,并通过npm / aptitude
etc 安装包,或者如果我在~/
主目录中创建新文件,有时这些包/文件会在我ddev stop > ddev start
或ddev restart
它不会一直发生,只是有时会发生。我已经重新启动了很多次,但我无法确定包/文件何时被擦除以及何时不被擦除的任何模式。
我浏览了配置文件、文档和 github 问题队列,但我找不到任何关于它的信息。我在ddev
安装了 Homebrew 的 Mac 上运行。我有最新版本的 Docker 和 Docker Compose。
我的问题是:如何才能使我安装的软件包/文件在我重新启动时仍然存在ddev
?
非常感谢。
解决方案
当您刚刚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"
推荐阅读
- gensim - 为海量数据集加速 Gensim 的 Word2vec
- uml - 在 UML 中,如何调用为其构建状态图的对象?
- angular - 根据所选选项显示字段 - 反应式表单
- css - 使文本随背景更改为新颜色,例如视差背景
- html - HTML 在 div 标签中包含没有额外空格的文本
- jax-rs - 如何在 JAX-RS ContainerRequestFilter 中获取路径模板?
- c++ - 在 VS2019 项目中集成 ImageMagick:x64-windows-static 库
- mongodb - 如何在微服务架构中将默认数据播种到 Mongo db(或任何数据库)?
- javascript - Xpath 函数在 playwright 中不起作用
- node.js - discord.js 在多个服务器上播放音频