RMS プロジェクト

Vagrantのテスト環境をDockerに載せ替える(予定) / RMSプロジェクト

投稿日:

RMSプロジェクトにDockerを入れる日がやってきた!

Time to Docker!

Why Docker?

RMSプロジェクトではVagrantを使って開発環境下でテストをしていました。Dockerと違って管理しきれないコンテナが溢れかえることはないし、Vagrantfileをかける人もいたのでVagrantでいいや〜という軽いノリで使い始め、幸せにテストをしていたのです。とはいえ、Debianを落としてPHPビルドしてってやってるのでアホみたいに時間がかかり、導入が難しい環境もあるようで、Dockerに載せ替える気持ちもじわじわ高まっており、引き継ぎを機にDockerで立てることにした…。これが経緯になります。

Dockerの構成

テスト用に以下のような構成を実現しようと思っています。

フロントエンドのテスト用サーバー(webpackのdev server)とAPIサーバー(Go)をnginxでまとめてルーティング、APIサーバーはMariaDBに接続するというのがRMSの構成です。なんでalpine?って感じですが、CI(Jenkins)でalpineが動いているためで、これに合わせてフロント・バックもalpineで統一しようというきもち。あと、golang:alpine では目当てのバージョンがなかったため、Dockerfileを自前で用意しています。特殊なことはそれくらいで、あとは古式に倣っています。

ペアプロをした

構成は決まったので、あとはDockerfileを書いてComposeでオーケストレーションをするだけです。だけなのですが、Dockerを一年生にも勉強してもらいたかったので、ペアプロをすることにしました。男もすなるペアプロ云々です。

Dockerってどういう概念?って話から始めて、ひとまず nginx とmariadb/server をComposeで立ててもらうことにしました。その間にぼくはバックエンドとフロントエンドの細かい要件を満たすDockerfileを書いたりレビューしたりします。

新人研修でのペアプロってどうやっていくのがいいのかイマイチわかっていません。ナビゲータは相談に応じたりスキルレベルに応じたタスクを振ったりレビューしたりしつつ、難しい場所はナビゲータ自身がコードを書いて説明するみたいな流れでいいんでしょうか?ひとまずそうしていますが……

一週間くらいでDockerへの移行作業を一緒にやっていこうと思っているので、終わった頃にその辺の感覚をつかめたらいいですね。

おわりに

引き継ぎを視野に入れて活動しているRMSプロジェクトですが、今メンテを中心的に行っている3年生もあと数ヶ月で4年生になるわけです。将来自分が困らないようにやっている引き継ぎ文書の作成や環境の組み替えですが、将来のことでは無く、現前していると言ってもいいかもしれません。

学生プロジェクトではサークルを抜けると引き継ぎがほぼ0で、残された人たちは環境構築やら太古のコードを読むのに手間取るのが常かなと思っているのですが、果たしてRMSの引き継ぎは成功するでしょうか?

-RMS, プロジェクト

Copyright© ソフトウェア工房 , 2020 All Rights Reserved Powered by AFFINGER5.