通过 AWS CodePipeline 构建 Docker 图像时 HTTPS 失败

HTTPS fails when building Docker image through AWS CodePipeline

我有一个实例(Elastic Beanstalk,无负载均衡器)运行我的网页 (nginx) 的 docker 图像。要配置它,我有一个 .ebextensions 文件夹,其中包含:https-instance.confighttps-instance-single.config 并且在根目录中有一个构建图像的 docker 文件。

如果我在本地构建图像,将其上传到 docker 集线器,并让 EBS 从这里更新图像,我对应用程序的 HTTPS 调用就可以正常工作。

现在,我已经转移到 CodePipelines,在那里我检查相同的代码并使用 AWS CodeBuild 构建它,将 docker 图像放在 ECR 上并将其部署到 EBS 我的 HTTP 调用正在工作但是我的所有 HTTPS 调用都出现请求超时。

我没有更改托管环境,所以他们可以访问 S3(我的证书位于 nginx 的位置)和一切都和以前一样(如果我从 docker 中心恢复到图像,它再次工作).

一定是有什么东西阻止了请求。唯一应该改变的是图像的构建位置。

我会包含一些文件,但我不确定在这种情况下包含哪些文件有意义。

任何人都可以给我一些指示,告诉我在哪里可以找出问题所在吗? (我对 AWS 还很陌生)

问题出在我的 buildspec.yml 文件上。我必须添加 .ebextensions 作为工件。

artifacts:
  files:
    - 'Dockerrun.aws.json'
    - .ebextensions/**/*

如果没有这个,生成并发送到 Elastic Beanstalk 的文件将只包含 Dockerrun.aws.json,然后 nginx 将不会配置为使用 SSL