CodeDeployを使ってLaravelをEC2にデプロイした時のメモ
リポジトリを作成する
CodeCommitにリポジトリを作成する
sshかhttpで接続出来るようにしてプッシュ
EC2を作成する
コンソールからEC2を作成する
CodeDeploy Agentをインストールする
sudo yum update
sudo yum -y install ruby wget
cd /home/ec2-user
wget https://aws-codedeploy-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status
# sudo service codedeploy-agent start
IAMロールを作成する
EC2用のIAMロール
- AmazonEC2RoleforAWSCodeDeploy
CodeBuild用のIAMロール
- AmazonSSMReadOnlyAccess
- (kms:Decryptを許可するポリシー)
CodeDeploy用のIAMロール
- AWSCodeDeployRole
CodeDeployの設定
CodeDeployのアプリケーションを作成する
CodeDeployのデプロイグループを作成する
Codepipelineを作成する
appspec.ymlを作成する
appspec.ymlは必ずしもルートディレクトリに置く必要はなく、ビルドプロジェクト毎に別のファイルを使用することも可能
appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /var/www/app
hooks:
BeforeInstall:
- location: scripts/beforeinstall.sh
runas: root
AfterInstall:
- location: scripts/afterinstall.sh
runas: root
ApplicationStart:
- location: scripts/applicationstart.sh
runas: root
permissions:
- object: /var/www/app/scripts
pattern: "**"
owner: ec2-user
group: nginx
mode: 774
type:
- file
buildspec.ymlを作成する
buildspecはルートディレクトリに置く必要がある
buildspec.yml
version: 0.2
phases:
install:
runtime-versions:
php: 7.4
nodejs: 12
pre_build:
commands:
- echo "pre-build"
- aws ssm get-parameter --with-decryption --name .env.production --query Parameter.Value | sed -e 's/^"//' -e 's/"$//' -e 's/\\\"/\"/g' | awk '{gsub(/\\n/,"\n")}1' > .env
build:
commands:
- echo "build"
# Composerインストール
- composer install
- npm install
- npm run prod
artifacts:
files:
- '**/*'
Author And Source
この問題について(CodeDeployを使ってLaravelをEC2にデプロイした時のメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/hiroita/items/6c4f63bcfba9cba0f3b1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .