我不确定是否有明显的东西逃脱了我,或者它是否不可能,但我正在尝试使用来自 docker hub 的图像组成整个应用程序堆栈。
其中之一是 mysql,它支持通过卷添加自定义配置文件并从安装目录运行 .sql 文件。
但是,我在运行 docker-compose 的机器上拥有这些文件,而不是在主机上。在运行入口点/cmd之前,是否无法从本地机器指定文件复制到容器中?我真的必须为这种情况创建所有内容的本地图像吗?
原文由 Andreas Wederbrand 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你不能使用卷(想要无状态的 docker-compose.yml 并使用远程机器),你可以通过命令编写配置文件。
官方图片中的 nginx 配置示例:
环境变量也可以保存在 .env 文件中,您可以使用 Compose 的扩展功能或从 shell 环境加载它(您从其他地方获取它):
https://docs.docker.com/compose/compose-file/#env_file https://docs.docker.com/compose/compose-file/#variable-substitution
获取容器的原始入口点命令:
要调查修改哪个文件通常会起作用: