gpt4 book ai didi

docker - 在 docker-compose 中挂载一个卷。它是如何完成的?

转载 作者:IT老高 更新时间:2023-10-28 12:43:48 27 4
gpt4 key购买 nike

如果我在控制台中执行这个 cmd:

 docker run -it --rm --link rabbit --link elasticsearch -v "$PWD"/logstash:/config-dir logstash logstash -f /config-dir/logstash.conf

运行良好。在 ./logstash 文件夹中有一个 logstash.conf。但是现在我试图放入一个 docker-compose 并且同样不起作用:

  logstash:
image: logstash:latest
links:
- "elasticsearch:elasticsearch"
- "rabbit:rabbit"
volumes:
- $PWD/logstash:/config_dir
command:
- "-f /config_dir/logstash.conf"

但我看不出这两个命令之间的区别。一些帮助?体积安装是如何完成的?还是该命令不起作用? logstash init 的响应是:

logstash_1        | {:timestamp=>"2016-07-06T15:43:06.663000+0000", :message=>"No config files found: / /config_dir/logstash.conf\nCan you make sure this path is a logstash config file?", :level=>:error}
rabbitmq_logstash_1 exited with code 1

编辑:我终于通过删除命令并使用原始图像的默认命令解决了问题,但我仍然不明白问题以及如何将相同的命令传递给docker和有效,但如果它通过 docker-compose 传递,则不要。提前致谢

最佳答案

您的配置可能不起作用,因为您的 docker-compose 版本在创建容器时没有执行 shell 扩展。这意味着 docker compose 正在尝试查找文字路径 $PWD/logstash 而不是将 $PWD 扩展到您当前的目录。更高版本的 docker compose 确实允许环境变量扩展。

Docker-compose does allow relative paths但是,通过使用 ./,它引用了 compose 文件所在的 文件夹,不一定是您的 pwd, 所以你只需要将 compose 文件更改为:

volumes:
- ./logstash:/config_dir

关于docker - 在 docker-compose 中挂载一个卷。它是如何完成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38228386/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com