我在python 2.7弹性豆茎环境中工作。
我正在尝试使用. eb扩展.config文件中的源密钥将tgz存档复制到我的应用程序根目录中的目录-/select/python/当前/app/实用程序
。我这样做是因为此文件夹中的文件太大而无法包含在我的github存储库中。
但是,它看起来像源键是在创建到当前捆绑目录的甲板符号链接之前执行的,所以我不能在使用源命令时引用/select/python/甲板/app
,因为它创建了文件夹,然后在尝试创建甲板符号链接时出现了beanstik错误。
以下是我尝试过的. ebextsions/utility.config
文件的副本:
sources:
/opt/python/ondeck/app/utility: http://[bucket].s3.amazonaws.com/utility.tgz
上面成功地复制到 /opt/python/ondec/app/utility但是然后beanstek错误了,因为它不能从 /opt/python/bundle/x创建符号链接-
sources:
utility: http://[bucket].s3.amazonaws.com/utility.tgz
上面复制文件夹 /utility右关闭根并行 /etc.
您可以使用container_commands
而不是源
,因为它在应用程序设置后运行。
使用container_commands
,您将无法使用源
自动获取文件并提取它们,因此您必须使用wget或curl等命令来获取文件并在之后解压缩它们。示例:curl超文本传输协议://[bucket]。s3.amazonaws.com/utility.tgz|tar xz
在我的环境(php)中,没有瞬态的在甲板上
目录,并且在运行命令后重新创建了我的应用程序最终部署的当前
目录。
因此,我需要在部署后运行脚本。搜索显示我可以将脚本放在/select/elasticbeanstatk/hooks/app部署/post/
中,它将在部署后运行。
所以我用最简单的方法从S3下载/解压我的文件到一个临时目录,方法是使用source
。然后我创建一个文件,该文件将在部署后复制我的文件,并将其放在部署后的钩子目录中。
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