docker コンテナ内で curl コマンドが失敗する

docker コンテナ内で curl コマンドが失敗する

curl コマンドを実行して、Docker コンテナー内の宛先 B にファイルをアップロードしようとしていますが、次のエラー メッセージが表示されます。ホスト サーバー上のコンテナー外でまったく同じコマンドを実行すると、正常に動作します。curl コマンドがホスト サーバー上で動作するため、ポート 443 が開いていることは明らかです。

* Trying xx.xx.xx.xxx...
* TCP_NODELAY set
* Connected to dns.servername.com (xx.xx.xx.xxx) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; O=WORK; OU=SSL Servers; CN=dns.servername.com
*  start date: Aug 11 19:21:18 2020 GMT
*  expire date: Aug 11 19:51:18 2022 GMT
*  subjectAltName: host "dns.servername.com" matched cert's "dns.servername.com"
*  issuer: C=US; O=WORK; OU=Certification Authorities; CN=WORK COMPANY Enterprise Issuing CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x561f6445d620)
> POST /service/rest/v1/components?repository=DevOps HTTP/2
> Host: dns.servername.com
> User-Agent: curl/7.58.0
> accept: application/json
> Authorization: Basic ZmFhZG1pbjotVXUzOEVKKlIhTGMjNXBe
> Content-Length: 368754896
> Content-Type: multipart/form-data; boundary=------------------------cc91de81e54e3bc2
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
* SSL_write() returned SYSCALL, errno = 104
* Failed sending HTTP2 data
* Connection #0 to host dns.servername.com left intact
curl: (55) SSL_write() returned SYSCALL, errno = 104

実行中のコマンド。

curl -v 'https://dns.servername.com/service/rest/v1/components?repository=DevOps' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -H 'Authorization: Basic ZmFhZG1pbjotVXUzOEVKKlIhTGMjNXBe' -F 'raw.directory=Folder12345' -F '[email protected];type=application/x-zip-compressed' -F 'raw.asset1.filename=testfile.zip'

これはめったに機能しません。10~20 回試しても 1 回しか機能しません。

関連情報