この記事は以下の環境を前提としています
- alpineのDockerImageを使用している
- Docker上のアプリでsendgridを使用してメールを送信している
現象
sendgrid-goを使用してFargateのDockerコンテナからsendgridを使用したところ、以下のようなエラーが出ました。
UNKNOWN: failed send email. to: &{xxx xxx@example.com}: Post https://api.sendgrid.com/v3/mail/send: x509: certificate signed by unknown authority
この現象はDockerを使用していないローカル環境だと起こりません。
原因
DockerImage内にCA証明書がないため起こるエラーです。
docker内
$ ls -l /etc/ssl/certs
total 0
対処法
Dockerfileに以下を追加してください。
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
これで信頼されているCA証明書のインストールができます。
docker内
$ ls -l /etc/ssl/certs | wc -l
304