我目前正在使用C ++编写的服务器上使用cpprestsdk
。 cpprestsdk
使用boost::asio
。我的大部分开发工作都是在Mac上完成的,而不是在Docker容器中完成的。当需要部署新版本时,我将其构建为在Docker容器中运行,然后将其在EC2实例上运行。
我最近添加了从S3获取配置文件的支持。为此,我使用了cpprestsdk
的{{1}}。在发送请求的代码中,它将执行http_client
asio
。这将失败并显示错误
未找到主机(权威)
我已确定,如果我将基本映像更改为async_resolve
,则它将正常运行。 ubuntu:16.04
和busybox
将产生该错误。我还发现,如果我使用alpine
,那么它可以从我正在使用的端点下载数据。但是,如果我使用curl
,它将找不到任何内容。例如,在google.com上运行nslookup
会产生
nslookup:无法解析'(null)':名称无法解析
我已经根据网上发现的内容尝试了一些方法,例如将nslookup
与numeric_service
的构造方法一起使用,使用“ http”作为端口而不是“ 80”(I也完成了SSL版本)。我还尝试使用主机的DNS运行容器。
例如,这是我查看的链接之一。
boost asio: "host not found (authorative)"
到目前为止,我还没有找到如何使其正常工作的方法。
注意,作为备用,我可以使用query
作为基本图像。我只希望使用较小的ubuntu:16.04
或busybox