THINK

nuxt.js の Docker 環境構築

10/21/2018

nuxt.js の Docker 環境構築をやっていたのですが、 色々と上手くいかず…

git clone をして Docker 環境を立てるだけで全て整うというのが理想なのですが…

FROM node

WORKDIR /app

ENV HOST 0.0.0.0

CMD npm run dev

最終的にこの形に収まりました。

試行錯誤

FROM node

WORKDIR /app

COPY ./package.json ./

RUN npm install -g vue-cli && \
	npm install -g nuxt && \
	npm install

ENV HOST 0.0.0.0

CMD npm run dev

nuxt.jsのインストールガイド に従いローカルで上手く行ったため、同じようにうまくいかないのかな?と。 スクラッチから始める を参考に行ったのですが、上手くいかず…

おそらく package.json の中身が足りなかったのだと思いますが、 webpack への知見がまだ足りず…

この方法の場合、 スターターテンプレート を使った方法では上手くいきました。 その場合だと、 npm install -g nuxt の一文が不要になります。

FROM node

WORKDIR /app

COPY ./package.json ./

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

ENV HOST 0.0.0.0

CMD npm run dev

ですが、 docker-compose を利用して volume にて必要なファイルを渡す場合、必要なものを全て渡すのであれば良いのですが、 volumes: ./ ./ のように書いてしまうと、上手く動かなくなります:(

これは望んでた結果では無いです。

色々考えたのですが、 現状ローカル環境に node.js を入れていて、 npm install を実行出来ているため、DockerのBuild時に色々追加しなくても良いのでは無いかと。

結果、一番最初の形に落ち着きました。

代案

今回はこの形に落ち着きましたが、 Dockerを使うのであれば、 やはりローカルに依存しないようにしたいです。

なので、代案としては Shell script を利用するのが良いのではないか?と考えています。

また発展があればまた上げます。

これの方が良いよ! という案があればツイッターで教えていただけると嬉しいです。

おまけ

書きかけの記事がいくつかあるので、 早めに書き上げるようにします…