DockerでNuxt開発環境を構築して、Firebaseへデプロイするためにfirebase loginを実行したところコマンドが認識されなかったり、ログインできなかったりしたので解決するまでの流れです。
【関連記事】
DockerでNuxt開発環境を構築してホストのブラウザから接続する
環境など
Windows 7 に VirtualBox を入れて、そこでUbuntuの仮想マシンを動かしています。
ubuntu内にdockerでnuxt開発環境を構築して、docker環境からfirebase loginを実行します。
手順
ここからの作業はUbuntuでおこないます。
今回は以下の流れでNuxt開発用のDockerコンテナを起動しています。
ポイントとしては以下の2点です。
-
firebaseコマンドを使えるようにするため、yarn global add firebase-toolsを追加。 -
firebase loginの結果を受け取れるようにするため、docker起動時に-p 9005:9005を追加。
$ vim Dockerfile
FROM node:lts
RUN apt-get update && \
apt-get upgrade -y && \
yarn global add @vue/cli && \
yarn global add @vue/cli-init && \
yarn global add firebase-tools
EXPOSE 3000
$ docker build -t [image_name] .
$ docker run -d -it -p 3000:3000 -p 9005:9005 -v $(pwd):/work [image_name]
$ docker exec -it [container_name] bash
ここからの作業はDocker環境とUbuntuを併用しておこないます。
Dockerに接続したターミナルで以下のコマンドを実行して問いかけに対して"Y"と入力すると、URLが表示されて認証待ちとなります。
$ firebase login
UbuntuのブラウザでそのURLへアクセスするとGoogleへのログインを求められるので、firebaseに登録したアカウントでログインします。
ログインに成功するとメッセージが表示され、ターミナルへ処理が戻ります。docker起動時に9005ポートを指定していないとGoogleのログイン後に処理が戻らずブラウザ上にエラーが表示されます。
ログアウトしたい場合は、ターミナルで次のコマンドを実行してください。
$ firebase login
以上です。