どこにでもいるSEの備忘録

たぶん動くと思うからリリースしようぜ

Portainerでコンテナ管理する(ついでにVue.js開発環境も作る)

最近windowsMacを行ったり来たりするので、いっその事Docker環境で統一したいと思ってます。 ということで、Dockerの環境をGUIで楽ちん管理するPortainerも導入したいと思います。

ついでと言ってはなんですが、今回はVue.jsの開発環境をDockerに移行します。

Docker環境GUIツール

一応下の3つくらい検討しました。

Kitematic

Docker純正のツールですね。

kitematic.com

インストールしてみたものの、よくわからなくて断念。。。

コンテナの管理はできそうなんですが、イメージの管理をどこでするのかわかんなかったっす。。。

Rancher

結構悩んだのがRancherです。

rancher.com

この辺見る感じ、UIはPortainerのが良いとされてますが、機能面でRancherを選ぶことが多いみたいですね。

stackshare.io

ただ、インストールしてみたらあんまりしっくり来なかったので断念。

画面としてはこんな感じでした。

f:id:nogawanogawa:20190321083101p:plain

portainer

結局決めたのがこちら。UI的には好みなので、結構悩みました。

https://www.portainer.io

kuroeveryday.blogspot.com

Portainerのインストール

インストールはこの辺を参考にしました。

qiita.com

ソフト自体はDockerで提供されているらしく、コマンドを打てばインストール完了です。

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

こんだけですね。アクセスするとこんな感じ。

http://localhost:9000/

f:id:nogawanogawa:20190321085243p:plain

Vueの環境構築

というわけで、本題のVueの開発環境をPortainerで管理できるようにしてみました。

DockerImage

まずはDockerfileを書きます。 書いたのはこんな感じ。

FROM node:8.11.3-alpine

ENV APP_PATH=/app
WORKDIR $APP_PATH

RUN apk update && \
    npm install -g npm vue-cli

RUN npm install vue
RUN npm install -g @vue/cli
RUN npm i vue-template-compiler

CMD [ "/bin/sh" ]

Imageのビルド 

Portainerを使うとこんな感じにビルドできます。

f:id:nogawanogawa:20190321123517p:plain

新規にImageを作る場合には、Build a new Imageから作成します。

f:id:nogawanogawa:20190321123538p:plain

エディターの欄に上のDockerfileの内容を書きます。

Containerの起動

コンテナの起動・停止もラクラクです。

コンテナの一覧はこんな感じです。

f:id:nogawanogawa:20190321123553p:plain

コンテナの名前、imageを選択後、ポートの開放、ttyの設定、マウント設定などを行います。

f:id:nogawanogawa:20190321123607p:plain

f:id:nogawanogawa:20190321123622p:plain

最後にdeploy the containerでcontainerで起動できます。 ログインしたかったら、コンソールとかでログインできます。

感想

GUIだとそれなりに簡単ですね。 それなりに面倒だとも思いました。どっちもどっちですね。