Elastic Beanstalk - .ebextensions在部署时没有运行。

问题描述 投票:0回答:1

我有一个dotnet核心应用程序。我的目的是将这个应用程序部署到EB上,但我需要在部署后运行一些命令。

这就是为什么我创建了一个 Docker文件

# 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"]

而我有一个 Derrun.aws.json。

{
  "AWSEBDockerrunVersion": "1"
}

最后这是我的 .ebextensions01_nginx.conf。

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

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

$ eb init

和创造环境

$eb create

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

期待的是什么?

当我用ssh登录到我的EC2容器时,我想看到的是 tmpx.f 文件。

是什么问题呢?

我试了好几种方法,肯定是 .ebextensions01_nginx.conf。 毫无办法,因为 tmpx.f文件不存在。 文件不存在。

注意。

  • 我确定部署的 zip 文件有一个 .ebextensions01_nginx.conf。 档案
  • 我确定这不是git的问题。因为我的根目录中包含了.ebignore。
  • 我可以毫无问题的反应终端,我的应用部署成功。

我的错误在哪里?

amazon-web-services docker amazon-ec2 amazon-elastic-beanstalk
1个回答
1
投票

一个可能的原因是你的文件扩展名不对,你的文件在 .ebextensions. 它 .config,不 .conf:

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

© www.soinside.com 2019 - 2024. All rights reserved.