経緯
ruby on railsで開発をしています。ソースコードの管理に、gitlabを使用することになりました。
gitlab ciで、gitlabにpushした際にテストコードを走らせ、テストのカバレッジを表示する、というところまでは自力でできました。
やりたいこと
テストをパスしたものを、dockerに自動デプロイしたい
使用しているもの
gitlab community edition 8.17
shared runnerはdocker executorです。
dockerfileからイメージを作っています。
dindを試したので、privilaged=trueになっています。
やったこと
- specific runnerとしてshell executorのrunnerを作り、docker buildしてみた
→エラーが出たが、文字化けしていて読めない(エラーコード9009) - sharedでdind
→runnerが閉じると作ったコンテナも消える、docker inspectするとIPアドレスがない
3. sharedでdindしないでdocker buildしてみる
→is daemon running?と言われる
→daemonを起こそうとするとエラーが出る(socketエラー)
4. socketを共有?する(dindはあまりよくないという記事を読んだため)
→はじめは良かったが、docker runしてもすぐにexitするようになった、やはりrunnerが閉じると消える
制約
- gitlabのバージョンを上げることは難しいです。
- shared runnerは、私は触れません。
runnerからdockerコンテナを外に作り、デプロイするというのは難しいでしょうか。
また、調べているとcapistranoを使用したものをよく見かけるのですが、dockerにデプロイするのにも利用できるでしょうか。gitlabにはenvironmentsという項目があり、environments:~~~と書くとデプロイできるようなので、現時点ではそれを利用しようと思っています。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。