概要
CodeDeployでデプロイ中にNo such file or directory - /opt/codedeploy-agent/deployment-root/[ID]/[デプロイグループ名]/deployment-archive/test
というエラーが/var/log/aws/codedeploy-agent/codedeploy-agent.log
に出てデプロイが失敗した。
筆者の場合の原因を簡単にまとめる
原因究明までの道のり
-
EC2インスタンスにssh接続し、下記コマンドを実行した。
less /var/log/aws/codedeploy-agent/codedeploy-agent.log
-
エラー内容は下記だった。
No such file or directory - /opt/codedeploy-agent/deployment-root/[ID]/[デプロイグループ名]/deployment-archive/test
-
本当に当該のディレクトリ内部にtestディレクトリが存在していないか確認する。
ll /opt/codedeploy-agent/deployment-root/[ID]/[デプロイグループ名]/deployment-archive/
-
deployment-archiveディレクトリ内部にはデプロイ対象のGithubのルートディレクトリと同じファイル郡が存在していたが確かにtestディレクトリは存在しなかった。
原因
appspec.ymlのsourceの記載に誤りがあった。
-
誤
appspec.ymlversion: 0.0 os: linux files: - source: test destination: /var/www/html/test hooks: ApplicationStop: - location: scripts/application_stop.sh timeout: 60 runas: root BeforeInstall: - location: scripts/before_install.sh timeout: 60 runas: root AfterInstall: - location: scripts/after_install.sh timeout: 60 runas: root ApplicationStart: - location: scripts/application_start.sh timeout: 60 runas: root ValidateService: - location: scripts/validate_service.sh timeout: 60 runas: root
-
正
appspec.ymlversion: 0.0 os: linux files: - source: ./ destination: /var/www/html/test hooks: ApplicationStop: - location: scripts/application_stop.sh timeout: 60 runas: root BeforeInstall: - location: scripts/before_install.sh timeout: 60 runas: root AfterInstall: - location: scripts/after_install.sh timeout: 60 runas: root ApplicationStart: - location: scripts/application_start.sh timeout: 60 runas: root ValidateService: - location: scripts/validate_service.sh timeout: 60 runas: root