在基于busybox或高山图像的Docker容器中运行时,未找到boost :: asio主机(权威)

时间:2018-10-25 23:25:11

标签: docker boost-asio alpine busybox cpprest-sdk

我目前正在使用C ++编写的服务器上使用cpprestsdkcpprestsdk使用boost::asio。我的大部分开发工作都是在Mac上完成的,而不是在Docker容器中完成的。当需要部署新版本时,我将其构建为在Docker容器中运行,然后将其在EC2实例上运行。

我最近添加了从S3获取配置文件的支持。为此,我使用了cpprestsdk的{​​{1}}。在发送请求的代码中,它将执行http_client asio。这将失败并显示错误

  

未找到主机(权威)

我已确定,如果我将基本映像更改为async_resolve,则它将正常运行。 ubuntu:16.04busybox将产生该错误。我还发现,如果我使用alpine,那么它可以从我正在使用的端点下载数据。但是,如果我使用curl,它将找不到任何内容。例如,在google.com上运行nslookup会产生

  

nslookup:无法解析'(null)':名称无法解析

我已经根据网上发现的内容尝试了一些方法,例如将nslookupnumeric_service的构造方法一起使用,使用“ http”作为端口而不是“ 80”(I也完成了SSL版本)。我还尝试使用主机的DNS运行容器。

例如,这是我查看的链接之一。

boost asio: "host not found (authorative)"

到目前为止,我还没有找到如何使其正常工作的方法。

注意,作为备用,我可以使用query作为基本图像。我只希望使用较小的ubuntu:16.04busybox

0 个答案:

没有答案