卷在 docker 中失败,但在 docker compose 中失败

问题描述 投票:0回答:1

启动我的 docker 容器时,我运行以下命令:

docker run -d \
  --name metadata-service00 \
  -p 8080:8084 \
  -v ./FilesToReplace/LogBack/logback.xml:/app/conf/logback.xml \
  [docker image]:build-897

它工作完美。

但是,当我运行以下 dockercompose 时:

version: '3'

services:
  activemq:
    image: [image 2]]:build-31
    ports:
      - "8161:8161"
      - "61616:61616"
      - "1883:1883"
    networks:
      - activemq_metadata_network
  metadata-service:
    image: [image 1]]:build-897
    container_name: metadata-service00
    ports:
      - "8080:8084"
    volumes:
      - ./FilesToReplace/LogBack/logback.xml:/app/conf/logback.xml


networks:
  activemq_metadata_network:
    driver: bridge

我收到以下错误:

Error response from daemon: error while mounting volume '/var/lib/docker/volumes/untitledfolder3_config_volume/_data': failed to mount local volume: mount /host_mnt/Users/[user name]/Desktop/untitled folder 3/FilesToReplace/LogBack/logback.xml:/var/lib/docker/volumes/untitledfolder3_config_volume/_data, flags: 0x1000: no such file or directory

我尝试运行 docker 命令(如上所述),以及: 使用非相对路径 使用 $(pwd) 而不是 ./ 重新启动我的 MacBook

docker macos docker-compose docker-machine docker-desktop
1个回答
0
投票

问题原因:

我认为这个问题是因为当您通过 CLI 运行 Docker 命令时,相对路径(如

./FilesToReplace/LogBack/logback.xml
)被解释为相对于您运行 Docker 命令的当前工作目录。

相比之下,在 Docker Compose 中,docker-compose.yml 文件中的相对路径是相对于该 docker-compose.yml 文件的位置进行解释的。

解决方案:

我建议修改 docker-compose.yml 文件中的卷路径,以正确指向相对于 docker-compose.yml 文件位置的 logback.xml 文件。

© www.soinside.com 2019 - 2024. All rights reserved.