【问题标题】:How do I create a docker image from dockerfile and then make a config file available on a volume when running the image from docker-compsose如何从 dockerfile 创建 docker 映像,然后在从 docker-compsose 运行映像时使配置文件在卷上可用
【发布时间】:2020-07-15 07:35:37
【问题描述】:

我正在创建一个 docker 容器,该容器运行一个收集遥测数据的 python 脚本。 dockerfile 看起来像这样。

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”,其中保存了“config.json” src/config/config.json

docker-compose 文件如下所示

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: 容器初始化导致\"rootfs_linux.go:58: 挂载 \\"/home/xtp/config.jso
n\\" 到 rootfs \\"/var/lib/docker/overlay2/c5a992a5717f2d510e75056ba38ad4075a0
31e73ca010fef5da8328ad366eaad/merged\\" 在 \\"/var/lib/docker/overlay2/c5a992a
5717f2d510e75056ba38ad4075a031e73ca010fef5da8328ad366eaad/merged/app/config/conf ig.json\\" 导致\\"不是目录\\"\"":未知:您是否在尝试 安装
一个目录到一个文件(或反之亦然)?检查指定主机是否 路径存在
并且是预期的类型

错误:对于 umpmfd 无法启动服务 umpmfd:OCI 运行时创建 失败:联系
iner_linux.go:346:启动容器进程导致 “process_linux.go:449: 续
ainer init 导致 \"rootfs_linux.go:58: 挂载 \\"/home/xtp/config.json\\" t
o rootfs \\"/var/lib/docker/overlay2/c5a992a5717f2d510e75056ba38ad4075a031e73ca 010fef5da8328ad366eaad/merged\\" 在 \\"/var/lib/docker/overlay2/c5a992a5717f2d
510e75056ba38ad4075a031e73ca010fef5da8328ad366eaad/merged/app/config/config.json \\"导致\\"不是目录\\"\"":未知:您是否尝试 挂载一个目录
复制到文件上(反之亦然)?检查指定的主机路径 存在并且是
预期的类型

我需要进行哪些更改才能将此 config.json 文件作为卷在主机上使用?

【问题讨论】:

  • 在您开始之前,该确切路径中的文件/home/xtp/config.json 是否存在?如果没有,Docker 会将它创建为一个目录,你会得到这个错误。

标签: docker docker-compose dockerfile config


【解决方案1】:

您是否尝试将目录挂载到文件上(反之亦然)?

这正是错误消息所暗示的内容。

挂载目录而不是文件。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多