docker - docker-compose:在不改变目标路径的情况下映射容器下的整个目录
问题描述
我可以像这样在 docker-compose.yml 中的容器下挂载一个目录:
volumes:
- ${SRC_PATH}:/usr/local/airflow/src/
我的 SRC_PATH 是主机上目录的路径。我的问题是默认行为将我的 SRC_PATH 下的内容放到/usr/local/airflow/src/
. 但是,我想要的是将目录本身放在目标路径下。因此,如果我的 SRC_PATH 在 .env 文件中定义为,/Users/myname/dev/abc
那么我希望容器上的路径为/usr/local/airflow/src/abc
约束是我不能在撰写文件中硬编码目标路径。SRC_PATH 将在 .env 文件中更改,我希望目标路径相应更改。那可能吗?
解决方案
看起来您想要获取basename
of$SRC_PATH
并将其附加到容器中的文件夹中。
理想情况下,如果你能做这样的事情会很好:
volumes:
- ${SRC_PATH}:/app/$(basename $SRC_PATH)
但是,显然,这不起作用。
据我所知,您有两个简单的选择:
如果父级$SRC_PATH
是固定的并且永远不会改变,你可以这样做:
volumes:
- /usr/local/whatever/${APP}:/app/${APP}
如果它不固定,那么我也会考虑定义$DEST_PATH
:
volumes:
- ${SRC_PATH}:/app/${DEST_PATH}
推荐阅读
- mongodb - Strapi 照片消失了
- python - 在 Python 中使用 SQLAlchemy ORM 在 MySQL 中创建外键
- javascript - 链接到不同网站上的 javascript 函数
- asp.net - 在 dotnet Razor 应用程序上出现 SSL 错误 - “此 ca 根证书不受信任”
- mysql - 在 node.js 中的客户端和服务器 js 文件之间共享 mysql 连接
- javascript - 在响应式菜单之外单击可以很好地关闭它,但之后不会
- javascript - 在反应中从子组件调用父组件的函数
- python - 使用 from x import * 修改模块 python 之外的变量
- java - Spring Boot 中的自定义验证器
- javascript - 使用 for 循环包装异步操作是否会使这些操作同步发生?