Я думаю, что лучший способ развертывания - это , чтобы удалить каталог проекта и завершить процесс перед развертыванием . Это позволяет сохранять состояние каталога проекта в чистоте и синхронизировать c с исходным хранилищем.
Как видно по этой ссылке ( appspe c .yml перехватывает для развертывания в EC2 ), CodeDeploy загружает артефакты на этапе Install
, и мы не можем получить доступ к этому шагу. Install
фаза наступает после BeforeInstall
ловушки.
Таким образом, вы должны удалить каталог и завершить процессы до выполнения Install
фазы.
hooks:
BeforeInstall:
- location: codedeploy-scripts/deleteAndKill.sh
# runas: root # this might be needed depending on your setting.
Правильно определить codedeploy-scripts/deleteAndKill.sh
и попробовать запустить CodePipeline
и CodeDeploy
снова.
PS Удаление каталога проекта и уничтожение процессов несколько беспокоят. поэтому, когда вы используете docker
, вам нужно только docker stop {container name}
и docker run {image name}
.