はじめに
CodeDeployでデプロイ自動化を実装しようとした時、エラーがいくつか出たため記録として残します。
ほぼ凡ミスのような感じですが、参考になれば幸いです。
条件
macOS: "11.2.3 Big Sur"
php artisan -V
# > Laravel Framework 6.20.30
php -v
# > PHP 8.0.8
nginx -v
# > nginx version: nginx/1.12.2
git --version
# > git version 2.32.0
1. DownloadBundleでエラー
The specified key does not exist.
(訳)指定されたキーは存在しません。
解決
これは単純に、.circleci/config.yml
ディレクトリにs3へのアップロード
の記載をしていなかったことが原因でした。
config.yml
// 省略
- run:
name: upload artifacts to s3
command: aws s3 cp lantern.zip s3://${AWS_S3_BUCKET_NAME}
// 省略
参考
2. AfterInstallでエラー : ①
Script does not exist at specified location
(訳)スクリプトが指定された場所に存在しません
解決
原因は、AfterInstall
イベントで使用されていたシェルスクリプトが反映されていなかったことでした。
scripts/after_install.sh
を追加したけれど、これが本番環境の方には反映されていませんでした。
なので、本番環境の方に同じようにディレクトリとファイルを作成。
# ① scriptsディレクトリ作成
$ mkdir scripts
# ② scriptsディレクトリ内に移動して、after_install.shファイルを作成
[scripts] $ touch after_install.sh
# ③ ファイルの中を編集
[scripts] $ vi after_install.sh
以下は、after_install.sh
ファイルの記述内容です。
after_install.sh
#!/bin/bash
set -eux
cd ~/Lantern/lantern
php artisan migrate --force
php artisan config:cache
よし、これでいけるだろう!と思い、もう一度デプロイ。。。
3. AfterInstallでエラー : ②
Could not open input file: artisan
(訳)入力ファイルを開くことができませんでした:artisan
artisan
コマンドが使えないということは指定しているディレクトリが違うのかな...と思ったので確認。
案の定、ディレクトリを指定しているところが違っていたため以下のように修正。
after_install.sh
- cd ~/Lantern/lantern
+ cd ~/Lantern/lantern-ssh-deploy
php artisan migrate --force
php artisan config:cache
よし、これでいけるだろう!!
無事デプロイ完了!
おわりに
改めて振り返ると、ディレクトリの指定ミスがちらほらありました...。
少しはAWSと仲良くなれた気がします。
参考