如何将beanstalk .ebextensions .config“sources”键“目标目录”设置为当前的bundle目录

我正在Python 2.7弹性beanstalk环境中工作。

我试图使用.ebextensions .config文件中的sources键将tgz压缩文件复制到我的应用程序根目录 – /opt/python/current/app/utility 。 我这样做是因为这个文件夹中的文件太大,不能包含在我的github仓库中。

但是,在ondeck符号链接创build到当前bundle目录之前,它看起来好像是执行了sources key,所以在使用sources命令时我不能引用/opt/python/ondeck/app ,因为它创build了文件夹,然后是beanstalk错误当试图创buildondeck符号链接。

这里是我尝试过的.ebextensions/utility.config文件的副本:

 sources: /opt/python/ondeck/app/utility: http://[bucket].s3.amazonaws.com/utility.tgz 

上面已经成功复制到/ opt / python / ondec / app / utility,但是由于无法从/ opt / python / bundle / x – > / opt / python / ondeck创build符号链接,所以出现了beanstalk错误。

 sources: utility: http://[bucket].s3.amazonaws.com/utility.tgz 

以上将文件夹复制到/ etc /并口根目录下。

我能用一个不同的关键来实现这个:

 container_commands: 001_get_utility_dir: command: "cd /opt/python/ondeck/app/utility && curl http://[bucket].s3.amazonaws.com/elasticbeanstalk/utility.tgz | tar xz" 

这有所帮助,但在我的环境(PHP)没有瞬态ondeck目录和current目录,我的应用程序最终部署后运行命令重新创build。

因此,我需要在部署后运行脚本。 search显示我可以在/opt/elasticbeanstalk/hooks/appdeploy/post/放置一个脚本,并在部署后运行。

所以我使用sources以最简单的方式将我的文件从S3下载/提取到临时目录。 然后创build一个文件,在部署完成后将文件复制到post deploy目录中。

 sources: /some/existing/directory: https://s3-us-west-2.amazonaws.com/my-bucket/vendor.zip files: "/opt/elasticbeanstalk/hooks/appdeploy/post/99_move_my_files_on_deploy.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash mv /some/existing/directory /var/app/current/where/the/files/belong