перезаписать существующие файлы из развертывания codepipeline - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь развернуть новый код, используя aws codepipeline. Первый раз это работает без проблем, во второй раз развертывание не удается из-за существующих файлов. Как я могу указать моему потоку перезаписать существующие файлы?

Сообщение об ошибке: Развертывание не выполнено, так как указанный файл уже существует в этом месте:

1 Ответ

1 голос
/ 21 февраля 2020

Я думаю, что лучший способ развертывания - это , чтобы удалить каталог проекта и завершить процесс перед развертыванием . Это позволяет сохранять состояние каталога проекта в чистоте и синхронизировать 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}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...