Elastic Beanstalk-.ebextensions不在部署上运行

时间:2020-05-02 22:45:44

标签: amazon-web-services docker amazon-ec2 amazon-elastic-beanstalk

我有一个dotnet核心应用程序。我将其打包给docker。 我的目标是将该应用程序部署到EB,但是部署后我需要运行一些命令。

这就是为什么我创建了一个 Dockerfile

的原因
# https://hub.docker.com/_/microsoft-dotnet-core
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /

# copy csproj and restore as distinct layers
COPY . ./App/
WORKDIR /App/WebApi
RUN dotnet restore
RUN dotnet publish -c release -o /build --no-restore

WORKDIR /build
ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080
ENTRYPOINT ["dotnet", "WebApi.dll"]

我有一个 Dockerrun.aws.json

{
  "AWSEBDockerrunVersion": "1"
}

最后是我的 .ebextensions / 01_nginx.conf

commands: 
  test_command: 
    command: "touch /tmp/x.f"

然后我要创建一个EB应用程序

$ eb init

并创建环境

$eb create

它正在成功部署我的应用程序。

期望什么?

当我使用ssh登录到EC2容器时,我想查看 /tmp/x.f 文件。

出了什么问题?

我尝试了几种方法,我确信 .ebextensions / 01_nginx.conf 不会以任何方式运行,因为 / tmp / xf 文件不存在。

注释:

  • 我确定已部署的zip文件具有 .ebextensions / 01_nginx.conf 文件
  • 我确定它与git无关。因为我在根目录中包含.ebignore。
  • 我可以毫无问题地回应终点,我的应用程序已成功部署。

我怎么了?

1 个答案:

答案 0 :(得分:1)

可能的原因是.ebextensions中文件的扩展名错误。 should.config,而不是.conf

配置文件是具有 .config 文件扩展名的YAML或JSON格式的文档,您将其放在名为.ebextensions的文件夹中并部署在应用程序源包中。