【问题标题】:docker-compose: map an entire directory under the container without changing destination pathdocker-compose:在不改变目标路径的情况下映射容器下的整个目录
【发布时间】:2021-06-14 15:40:03
【问题描述】:

我可以像这样在 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 文件中更改,我希望目标路径相应更改。这可能吗?

【问题讨论】:

    标签: docker docker-compose docker-volume


    【解决方案1】:

    您似乎想要获取$SRC_PATHbasename 并将其附加到容器中的文件夹中。

    理想情况下,如果你能做这样的事情会很好:

    volumes:    
      - ${SRC_PATH}:/app/$(basename $SRC_PATH)
    

    但是,显然,这不起作用。

    据我所知,您有两个简单的选择:

    如果$SRC_PATH的父级是固定不变的,你可以这样做:

    volumes:    
      - /usr/local/whatever/${APP}:/app/${APP}
    

    如果不固定,我也会考虑定义$DEST_PATH

    volumes:    
      - ${SRC_PATH}:/app/${DEST_PATH}
    

    【讨论】:

    • 谢谢。简单的选择是我的想法,但不适合我的情况。理想就是我想要的哈哈
    猜你喜欢
    • 1970-01-01
    • 2018-08-19
    • 2020-08-06
    • 2021-09-24
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    相关资源
    最近更新 更多