php - docker:在 Docker 中调用 Web 服务
问题描述
我在我的码头:
- php-5.6-apache - Apache 和 php
- zrrrzzt/docker-unoconv-webservice - 从 Libre Office 文档创建 pdf 的网络服务
- 两个容器都使用网络 my-network
从 shell 创建 pfs 可以正常工作:
curl --form file=@/var/xxx/documents/output-odt/test.odt http://localhost:3000/unoconv/pdf > /var/xxx/documents/output-odt/test.pdf
但是当从我的 php-5.6-apache 容器中调用它时,无法正确识别 localhost。
当我使用已检查容器的 IP 地址(例如http://172.18.0.4:3000 )时,它适用于 php 。但这不是一个好的解决方案,因为服务器重新启动时 IP 地址会发生变化。
问题:
- 如何在 Docker 中调用 Web 服务?
- 应该使用什么来代替 localhost?
- 或者如何指定容器的 url?
- 或者我该如何处理我的网络?
谢谢
解决方案
现在我知道问题出在哪里了:D
此命令仅在从其他容器调用时才有效。就我而言,来自 php.ini。它不适用于 OS shell,这就是我感到困惑的原因:
curl --form 文件=@/var/xxx/documents/output-odt/test.odt http://unoconv:3000/unoconv/pdf > /var/xxx/documents/output-odt/test.pdf
此命令仅在从 OS shell 调用时有效: curl --form file=@/var/xxx/documents/output-odt/test.odt http://localhost:3000/unoconv/pdf > /var/xxx/documents/输出-odt/test.pdf
感谢帮助
推荐阅读
- group-by - 按 2 个字段分组 oracle sql 内连接
- ibm-watson - 如何格式化 Watson Discovery 结果以使其看起来像 Watson Assistant 响应?
- linux-kernel - 如何从 Linux 内核模块访问内核命令行?
- azure - 如何确定给定的 Azure DevOps PAT 令牌是否对所有可访问的组织都有效?
- python - 修改图像中多种颜色的 alpha 值?
- vb.net - 处理大数据时出现错误消息 ContextSwitchDeadlock
- google-maps - 离子谷歌地图在设备或-l实验室视图中不工作,但在浏览器中工作完美
- java - 该程序打印出 -10 到 +10 之间的数字,但我希望它在 1 到 999 之间
- excel - 获取按钮以自动应用于导入的模块
- reactjs - 如何在函数中放置返回码:React