2016-08-23 6 views
1

私の現在の設定は私のVPSで私のgitベアリポジトリを設定したことですstaging。私はないので展開する前にドッカーでテストを実行する最良の方法は

、:

git push staging staging 

私がマウントされたディレクトリと私のドッキングウィンドウを再実行するには、gitの-workdirsを参照してください。

ここでは、そのドッカー内でテストを実行することを追加したいと思います。何かが失敗した場合は、以前の(動作中の)コミットにロールバックします。 [1]

を行うための最善の方法は何か[1]

私の現在のフックのようになります。

$worktree = /my/work/directory 
$gitdir = /my/repo/dir.git 
$containername = mycontainer 
git --work-tree=$worktree --git-dir=$gitdir checkout staging -f 
cd $worktree 
docker stop $containername || true 
docker kill $containername || true 
docker rm $containername || true 
docker run -d -p $port1:$port2 --name $containername -v $worktree:/root/src -it $imagename bash -c $runscript 

答えて

2

(直接あなたの質問に答えるが、別のアプローチではないかもしれません

私はKitchen testとしました。これは、新しいテストインスタンスを開始することができます、それはVMWare、ec2インスタンスなどとすることができます、それは異なるドライバ(迷惑メール、ec2、ドッカーなど)はもちろん、ドッカーでドッカーをテストすることはできません)、自動的に確認するために同じコードを実行することができます。

は、ここですべてが適切に設定されている場合は、一つのコマンドkitchen testは、すべての展開、テストを実行し、直接インスタンスを破壊するGetting started guide

です。

テストケースは、あなたが手動でも、トラブルシューティングを取得するための手順の下に実行することができますserverspec resource types

を参照し、テストケースについての詳細はなど、ポートのリスニングを使用すると、簡単に実行中のインスタンスをテストすることができserverspecを、使用している工程 - ステップバイステップ

kitchen test = kitchen create + kitchen converge + kitchen verify + kitchen destroy 
関連する問題