## ローカルからVPSにgit push した際に自動でデプロイしたい.
ssh設定などは終わり,ローカルからgit push {{作成したremote}} master
でVPS上のコードが書き換わるようになりました.
方法としてはgit hooks
の post-receive
でローカルからVPSにpushした際にその変更に対してgit pull
しています.
pullした後に元の実行プロセスをkill
してgoのコードをビルドしてバックグラウンドで新しく実行させたいのですが,
問題が二つあります.
ps aux | grep {{元実行されていたプロセスの名前}} | grep -v grep | awk '{ print "kill -9", $2 }' | sh
をpost-receive内で実行した際に,
fatal: The remote end hung up unexpectedly error: error in sideband demultiplexer
が出てしまう事
バックグラウンドで実行させる為にpost-receive上でnohup make run &
しているのにもかかわらず,sshを切断すると,webのプロセスが閉じてしまう事です.(VPS上で同じコマンドを叩くとうまくいきます)
(post-receive)
sh:
1#!/bin/bash 2export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/usr/local/go/bin 3cd {{webアプリのディレクトリ}} 4git --git-dir=.git pull origin master 5ps aux | grep {{元実行されていたプロセスの名前}} | grep -v grep | awk '{ print "kill -9", $2 }' | sh 6nohup make run &
(Makefile)
run: go build -o ./cmd/main ./cmd/main.go ./cmd/main -dbconfig $(DBCONFIG) -addr $(ADDR)
どのような可能性があるのか教えていただきたいです.
回答1件
あなたの回答
tips
プレビュー