我希望我可以使用条件进行.ebextensions配置,但我不知道如何使用它,我目前的情况是:
.ebextensions配置内容之一是创建一个文件夹,实际上必须创建的文件夹只有一次,因为如果我第二次或更多次部署应用程序我就会出错,并且错误说“该文件夹已经存在“。
所以我需要给出条件,如果文件夹已经存在,则无需再次运行创建文件夹的命令。
如果有人对如何实现这一点有任何见解或指导,我将不胜感激。谢谢!
答案 0 :(得分:29)
.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}"
答案 1 :(得分:8)
我认为唯一的方法是使用shell条件:
commands:
make-directory:
command: |
if [ ! -f "${DIR}" ]; then
mkdir "${DIR}"
fi
请参阅jcabi-beanstalk-maven-plugin中的更大示例。