Windows 如何在Docker yml文件中运行curl命令?
我有两个docker容器,它们在docker compose中运行,但不再相互通信(尝试执行GraphQL变异时出现连接拒绝错误)。要调试它,我想用一个简单的curl命令替换其中一个 原始yml:Windows 如何在Docker yml文件中运行curl命令?,windows,docker,curl,Windows,Docker,Curl,我有两个docker容器,它们在docker compose中运行,但不再相互通信(尝试执行GraphQL变异时出现连接拒绝错误)。要调试它,我想用一个简单的curl命令替换其中一个 原始yml: services: backend_container: container_name: backend_container image: backend_container:latest command: parm1 parm2 volumes: -
services:
backend_container:
container_name: backend_container
image: backend_container:latest
command: parm1 parm2
volumes:
- /c/path_to_data:/data/in
ports:
- 19777:19777
depends_on:
- ui_container
ui_container:
container_name: ui_container
image: ui_container:latest
ports:
- 801:8080
拟议的yml:
services:
test_ui:
container_name: test_ui
volumes:
- /c/path_to_data:/data/in
depends_on:
- ui_container
command:
bash -c 'curl -X POST --data-binary \"@/data/in/my_query.txt\" -H \"Content-Type: application/json\" -H
\"Accept: application/json\"
http://ui_container:8080/graphql'
ui_container:
same as before
我是新码头工人,所以我有几个问题:
scannerror:这里不允许映射值指向“Accept”之后的冒号
docker-compose run backend_container \
curl --data-binary @/data/in/my_query.txt ...
sh-c
包装器(只有当您有shell重定向或环境变量引用时才需要它)和跳过,这也节省了引用级别
命令:>-
卷曲
-X柱
--数据二进制@/data/in/my_query.txt
-H“内容类型:应用程序/json”
-H“接受:应用程序/json”
http://ui_container:8080/graphql
这里的另一个好方法是使用命令的列表形式
。同样,这里不能使用shell构造,但可以(而且必须)明确指定“单词”是什么
命令:
-卷曲
--X
-职位
---数据二进制
-@/data/in/my_query.txt
--H
-“内容类型:application/json”#谢谢,非常有用。是否应该docker compose运行backend\u container\curl--data binary@/data/in/my\u query.txt…“be”docker compose运行ui\u container…
?或者我需要单独运行所有其他容器吗?另外,如果使用run
,如何给出容器参数?使用docker compose.yml
文件中的大多数设置(它覆盖命令:
,并故意忽略端口:
)。我猜您想测试来自另一个容器的客户端调用,这就是我使用该容器名称的原因。
command:
- curl
- -X
- POST
- --data-binary
- @/data/in/my_query.txt
- -H
- "Content-Type: application/json" # <-- YAML string quoting
- -H
- "Accept: application/json"
- "http://ui_container:8080/graphql"