无法使用卷共享日期

Tlaloc-ES

您好,我正在尝试在主机和容器之间共享数据,为此,我拥有以下Dockerfile和docker-compose.yml:

Docker文件

FROM python:3.8.7-buster
RUN mkdir /proxies
COPY proxies /proxies
RUN pwd
RUN ls -la /proxies

docker-compose.yml

version: '3'
services:
  socks_provider:
    build: SocksProvider
    volumes:
      - ${HOST_PATH}/proxies:/proxies

pwd并且ls运行以显示正确的输出时,容器中的文件位于中/proxies,但是当尝试使用主机中的volume文件夹访问该文件时,没有文件,但是创建了该文件夹。

如何在容器和主机之间共享该文件?

医学博士

volumes: ['${HOST_PATH}/proxies:/proxies']您的docker-compose.yml规范字段会创建一个所谓的bind-mount正如我在评论中提到的那样,此功能无法自动将现有文件从映像“导出”到主机。有关详细信息,这在另一个SO回答“ Docker:绑定安装的奇怪行为”中有很好的解释

因此,要实现所需的功能,我想您需要使用单独的文件夹创建绑定安装,并依赖一些入口点代码。概念验证(待完善):

入口点

#!/bin/sh

if [ -d "/export" ]; then
  ( set -x; cp -a -T -- /proxies /export )
else
  echo >&2 "Skipping copy to /export: No such directory"
fi

exec "$@"

Docker文件

FROM python:3.8.7-buster
# RUN mkdir /proxies  # unneeded: the COPY command will create it
COPY proxies /proxies
WORKDIR /app
COPY entrypoint.sh /app/
RUN chmod a+x entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["/bin/sh"]

docker-compose.yml

version: '3'
services:
  socks_provider:
    build: SocksProvider
    volumes:
      - ${HOST_PATH}/proxies:/export

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章