自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【Django】EC2インスタンスへgitを使ってデプロイする

thumbnail

scpによるファイルアップロードの場合、ローカルで削除した差分ファイルがインスタンス上に取り残されてしまう。

可能であれば、gitを使ったデプロイができるようになっておきたい。

手順

  1. インスタンスにリモートリポジトリを作る
  2. ローカルにリポジトリを作る
  3. リモートリポジトリとローカルリポジトリをつなげる
  4. SSHの設定に.pemファイルを登録する
  5. プッシュする

インスタンスにリモートリポジトリを作る

インスタンスのデフォルトのブランチは、masterになっているのでインスタンスにて。前もってこのコマンドを実行しておく。

git config --global init.defaultBranch main

その上でリポジトリを作る。

適当なディレクトリを作り、リポジトリとして扱う。

mkdir -p ~/Documents/myproject.git
cd ~/Documents/myproject.git

git init --bare

ローカルにリポジトリを作る

git init
git add .
git commit -m "first commit"

リモートリポジトリとローカルリポジトリをつなげる

git remote add origin インスタンスのユーザー名@インスタンスのIPアドレス:~/Documents/myproject.git

SSHの設定に.pemファイルを登録する

.pemファイルを .sshディレクトリ内にコピーする

cp ./test.pem ~/.ssh/test

公開鍵を作る

ssh-keygen -y -f ./test.pem > ~/.ssh/test.pub

ssh-agentに秘密鍵を登録しておく。

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/test

この時点で、sshログイン時に.pemファイルを指定せずにログインできるようになる。

参照: https://alphacoder.xyz/git-push-to-an-aws-ec2-remote-using-a-pem-file/

プッシュする

git push origin main 

インスタンスへプッシュする。

後は、クローンをして、ファイルを実体化させる

git clone myproject.git 

参照

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ