如何从dockerfile创建docker映像,然后在从dockercompsose运行映像时在卷上提供配置文件



我正在创建一个docker容器,该容器运行一个收集遥测数据的python脚本。码头文件是这样的。

FROM python:3.7-alpine
WORKDIR /app
COPY src/requirements.txt ./
RUN pip install -r requirements.txt
COPY src /app
CMD [ "python", "main.py" ]

文件夹"src"中有一个保存了"config.json"的文件夹"config"src/config/config.json

docker组合文件看起来像这个

version: '2.2'
services:
umpmfd:
container_name: mfdwebsockets
build: mfdwebsockets
network_mode: "host"
restart: always
volumes:
- "/home/xtp/config.json:/app/config/config.json"   
depends_on:
- influxdb
- grafana

我想在主机上有"config.json"文件,这样我就可以在不停止和重新启动容器的情况下更改配置。目前我收到了这个错误。

错误:对于mfdwebsockets,无法启动服务umpmfd:OCI运行时创建失败
:container_linux.go:346:启动容器进程导致"process_linux.go:44
9:container init caused \"rootfs_linux.go:58:mounting\\"/home/xtp/config.jso
n\\"到rootfs\\"/var/lib/docker/overlay2/c5a992a5717f2d510e75056ba38ad4075a0
31e73ca010fef5da8328ad366eaad/merged\\"\\"/var/lib/docker/overlay2/c5a992a
5717f2d510e75056ba38ad4075a031e73ca010fef5da8328ad366eaad/merged/app/config/config.json \\"caused \\"不是目录\\"\":未知:你在尝试吗将
目录装载到文件上(反之亦然(?检查指定的主机路径存在
并且是预期的类型

错误:对于umpmfd无法启动服务umpmfd:OCI运行时创建失败:conta
iner_nux.go:346:启动容器进程导致"process_linux.go:449:cont
ainer init caused \"rootfs_linux.go:58:mounting\\"/home/xtp/config.json\\"t
o rootfs\\"/var/lib/docker/overlay2/c5a992a5717f2d510e75056ba38ad4075a031e73ca010fef5da8328ad366eaad/合并\\"\\"/var/lib/docker/overlay2/c5a992a5717f2d
510e75056ba38ad4075a031e73ca010fef5da8328ad366eaad/merged/app/config/config.json\\"caused \\"不是目录\\"\":未知:你想将目录安装到文件上(反之亦然(?检查指定的主机路径存在并且是
预期类型的

要使这个config.json文件作为卷在主机上可用,我需要更改什么?

您是否试图将目录装载到文件上(反之亦然(?

这正是错误消息所建议的。

装载目录而不是文件。

volumes:
- "/home/xtp:/app/config" 

最新更新