You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker镜像构建时安装Curl并解决VB.NET应用调用Curl无响应问题

问题根源

  • 多FROM语句用法错误:Docker多阶段构建要求必须显式从前面的阶段复制文件到最终阶段,否则前面声明的镜像完全不会生效,你的最终镜像仅包含最后一个mcr.microsoft.com/dotnet/framework/runtime:4.6.2的内容,前面声明的curl镜像无任何作用
  • curlimages/curl:latest是Linux容器镜像,和Windows容器不兼容,即使按多阶段构建逻辑复制文件,也无法拿到Windows可用的curl二进制文件
  • 原有VB代码中cmd启动参数用了/k,命令执行完成后cmd会保持驻留,不会输出结果也不会退出,即使curl配置正确也看不到返回内容

解决方案

方案1:修改Dockerfile配置curl,保留原有VB代码逻辑

第一步修改VB代码

把启动参数里的/k改为/c,确保命令执行后cmd退出、结果正常输出:

Module Module1
    Sub Main()
        Dim curlApplicationPath = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "curl.exe")
        Dim arguments = $"/c {curlApplicationPath} --location --request GET http://ip:port/"
        Process.Start("cmd.exe", arguments)
    End Sub 
End Module

第二步修改Dockerfile

直接在.NET Framework基础镜像中下载Windows版curl,放到系统目录适配代码的路径逻辑:

FROM mcr.microsoft.com/dotnet/framework/runtime:4.6.2
WORKDIR /app

# 下载curl并解压到System32目录
RUN powershell -Command `
    Invoke-WebRequest -Uri "https://curl.se/windows/dl-7.79.1/curl-7.79.1-win64-mingw.zip" -OutFile "curl.zip" ; `
    Expand-Archive -Path "curl.zip" -DestinationPath "C:\temp" ; `
    Copy-Item "C:\temp\curl-7.79.1-win64-mingw\bin\curl.exe" -Destination "C:\Windows\System32\curl.exe" ; `
    Remove-Item -Recurse -Force "C:\temp", "curl.zip"

COPY bin/Release .
ENTRYPOINT ["CurlCall.exe"]

重新构建镜像后即可正常运行。


方案2(更推荐):替换curl调用逻辑,无需额外依赖

直接使用.NET自带的HttpClient发起请求,完全不需要依赖外部curl程序,兼容性更强、性能更高:

修改VB代码

Imports System.Net.Http

Module Module1
    Private ReadOnly client As New HttpClient()
    Sub Main()
        Dim response As HttpResponseMessage = client.GetAsync("http://ip:port/").Result
        response.EnsureSuccessStatusCode()
        Dim responseBody As String = response.Content.ReadAsStringAsync().Result
        Console.WriteLine(responseBody)
    End Sub
End Module

对应简化版Dockerfile

FROM mcr.microsoft.com/dotnet/framework/runtime:4.6.2
WORKDIR /app
COPY bin/Release .
ENTRYPOINT ["CurlCall.exe"]

内容的提问来源于stack exchange,提问作者SAIP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:03:05