読者です 読者をやめる 読者になる 読者になる

gaaamiiのブログ

悪気なく間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

個人の開発環境をDockerで手に入れる(書き途中)

個人の開発環境をDockerで構築する(かもしれない)。 間違っていること書いていたら指摘バシバシください。Docker使ってみた情報の需要は今、割と大きい(検索からくる人も多くなる)と思うので、自分でも見なおして書きなおしていきます。

背景

以下の記事でマネーフォワードのエンジニアの方が書かれているのと同じような問題を気にした結果です。

  • OSやRubyのバージョンアップの度にbundle installがこける。
  • Windowsを使っているデザイナさん向けに動作環境を作るのが大変。
  • ブランチを切り替えるとDBのスキーマが違うため動かない。
  • ライブラリを新しいものに差し替えたら既存のアプリがおかしくなる。

僕の現職では開発しているソフトウェアが適切に動く環境を手に入れることが難しい場面が何度もあり、そこで初めてソフトウェアインフラ整備やバージョン管理に興味を持ちました。
あとそういえば、去年の暮れあたりにiOSエンジニアの工藤さんに「Rails教えますよー」と調子乗ってほざいていたらPostgresqlの設定で大いにハマって、最終的にHello, Worldくらいしか到達できなかったみたいな思い出がある(その節はすみませんでした...)。

方針

  • やりながらどういうものかつかんでいきたい
  • 技術そのものの理解は後回し

手順

  • Dockerをどうにかこうにかして入れる(最近だとDocker for MacみたいなののBeta版が公開されているみたい。正直どうするのがベストかよくわからないのでここには書かない。自分の場合はDocker ToolboxをMacで使うときに上手くいかなくて、諦めて Virtualbox内のubuntuにDocker入れていろいろ試している。)
  • Dockerfile書く
  • docker build -t [イメージ名] .
  • docker run -v /hoge:/hoge -it [イメージ名] bash

やっていることざっくり

docker build

Dockerfileをもとにイメージを作る。なお、ビルドされたイメージを確認するには docker images で一覧が見れる。

docker run

コンテナを動かす。

Data Volumes

ホストのディレクトリをマウントするには、docker run コマンドに -v オプションで [ホスト側のディレクトリ]:[コンテナ側でのディレクトリ名] と指定してあげるとマウントできる。

docs.docker.com

TODO: Dockerfileの書き方と管理

これが一番大変そう。後で書けそうだったら書く。

Dockerfileに書くこと

  • ベースイメージ
  • パッケージマネージャのアップデート
  • パッケージのインストール
  • ユーザーの設定
  • ミドルウェアの設定
  • .vimrcなどDotfilesの適用