部署成功后在 /var/app/current 目录下创建文件

mir*_*ron 3 deployment amazon-web-services amazon-elastic-beanstalk

我试图在成功部署/var/app/current目录中创建一个文件。我已经在下面创建了一个配置文件,但没有创建该文件。我认为它总是被覆盖,因为文件首先在. 我不想在我的 VCS 中跟踪文件。.ebextensions/tmp/deployment/application

我的配置文件:

# .ebextensions/create_file.config
files:
  "/var/app/current/src/webapp/dist/testfile.html":
  mode: "000644"
  owner: nodejs
  group: nodejs
  content: |
    <!DOCTYPE html>
    <html lang="en">
    <head>
    </head>
    <body>
    <h1>foo</h1>
    <body>
    </html>
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 7

尽管文档中没有明确说明,所有.ebextensions命令都在最终部署步骤之前运行。也就是说,它们都是在您的应用程序的新版本部署到/var/app/ondeck该目录之前但在该目录重命名为/var/app/current.

所以发生的事情是您testfile.html正在写入目录/var/app/current,该目录稍后被删除并替换为新目录/var/app/ondeck

移动目录没有官方支持的机制来执行命令,但我(和许多其他人)使用了一个非官方的解决方法。基本上,编写一个 shell 脚本来移动或创建您需要的文件并将其放入/opt/elasticbeanstalk/hooks/appdeploy/post/.