箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

Dockerを使った環境構築が楽すぎてビビった

f:id:y_hakoiri:20191102121842j:plain

突然の社用PCフリーズからの入社後2回目の環境構築、今回はGo編。

弊社ではRailsとGoを使っていて、RailsはまだDocker化されていないので結構大変だったんだけど、Goの方はDocker環境なのでめちゃめちゃ楽で驚いた話です。

Dockerのインストール

$ brew install docker

Homebrewから。

インストールできたので、ここらで一回docker psしてみる。

$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

docker psは今動いているコンテナを一覧表示してくれるコマンド。

まだDockerをインストールしただけでコンテナは立ち上げていないので、当然ここで出てくるはずはないのだけど、一応それを確認してみたかったので。

ちなみにここでdocker ps -aとすると停止済みのコンテナも表示してくれる。

少し脱線したけど、改めて先ほどのログを見ると

$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

デーモンが起動してないよって怒られた。

Docker Desktopのインストール

$ brew cask install docker

ちょっとこの辺きちんと調べていないのだけど、Dockerを動かすにはDockerデーモンが起動している必要があり、Docker DesktopというGUIを使用することで割と分かりやすくそれを維持することができる。

↑のコマンドでDocker Desktopをインストールしたら、Launchにクジラさんアプリが出来上がってるはずなので、アプリを起動

Docker Hubにサインアップしろみたいな感じの表示が出るけど、特にIDとか入れなくても大丈夫。

ちょっと待ってるとデーモンが立ち上がってくれます。

もう一度docker ps

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

さっきは出なかった項目が並んでいるので、Dockerの準備は整いました。

あとは必要なイメージをpullしてきてコンテナを立ち上げるだけ。

イメージはDocker Hubに上がっているものを直接pullしてくる方法もあるし、コード化されていてアプリ(プロダクト)内に組み込まれているのであれば、そのプロダクトがあるディレクトリでコマンドを叩けばコンテナを立ち上げることができる。

今回はプロジェクトの中にDockerのイメージファイルがあり、プロジェクトをすでにgit cloneしてきていたので、docker-compose up -dするだけでおけ。

$ docker-compose up -d

ダダダダ〜〜っとイメージのpullから始まり、無事にコンテナが立ち上がってくれました。

もう一度docker ps

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
・
・
・

見せられなくて残念だけど、さっき出てきた項目の下に5つ分のコンテナのそれぞれの項目(コンテナIDとか使用してるイメージとか)の一覧が表示されていることが確認でき、無事環境構築終了。ここまでなんと10分かからず。汗

Goすらインストールしてないし、、ローカルにインストールしなくて良いのはめちゃくちゃ良いよね〜〜〜

参考

今回は自社プロジェクトのREADME参照のため無し。