我正在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