我希望我可以对 .ebextensions 配置使用条件,但我不知道如何使用它,我目前的情况是:
.ebextensions 配置内容之一是创建一个文件夹,实际上必须创建的文件夹只有一次,因为如果我第二次或更多次部署应用程序,我会遇到错误,并且错误说“文件夹已经存在” .
所以我需要给出条件,如果文件夹已经存在,则不需要再次运行创建文件夹的命令。
如果有人对如何实现这一目标有任何见解或方向,我将不胜感激。谢谢!
我希望我可以对 .ebextensions 配置使用条件,但我不知道如何使用它,我目前的情况是:
.ebextensions 配置内容之一是创建一个文件夹,实际上必须创建的文件夹只有一次,因为如果我第二次或更多次部署应用程序,我会遇到错误,并且错误说“文件夹已经存在” .
所以我需要给出条件,如果文件夹已经存在,则不需要再次运行创建文件夹的命令。
如果有人对如何实现这一目标有任何见解或方向,我将不胜感激。谢谢!
.ebextensions 配置文件允许通过在命令上使用test:
指令来有条件地执行命令。然后该命令仅在测试为真时运行(返回 0)。
示例.ebextensions/create_dir.config
文件:
commands:
01_create_dir:
test: test ! -d "${DIR}"
command: mkdir "${DIR}"
如果目录不存在,另一个示例(实际在 EB 上测试)有条件地运行脚本:
commands:
01_intall_foo:
test: test ! -d /home/ec2-user/foo
command: "/home/ec2-user/install-foo.sh"
cwd: "/home/ec2-user/"
AWS 的稀疏文档在这里:
PS。如果您只需要有条件地创建目录,则可以不带条件地执行此操作,使用-p
选项mkdir
来有条件地创建目录,如下所示:
commands:
01_create_dir:
command: mkdir -p "${DIR}"
我认为唯一的方法是使用 shell 条件:
commands:
make-directory:
command: |
if [ ! -f "${DIR}" ]; then
mkdir "${DIR}"
fi