3行まとめ
- Dockerを業務であまり使わせてもらえないので触りたかった
- 個人開発でWebAppを作りたかった
- 以前から触りたかったFirebaseを本気でやりたかった
完成したもの(デプロイしただけ)
study-record-app.web.app
- Node.js用のコンテナ
- Firebase用で使うコンテナ
- ローカルのファイルのマウント
手順まとめ
- docker-compose ファイルの用意
- docker file の用意
- docker-compose の起動とfirebaseのほうコンテナに入る
- vue3/typescriptのプロジェクトのひな形作成
- firebase のセットアップ
- vueプロジェクトのビルド
- firebaseのデプロイ
docker-compose ファイルの用意
node.js
で$ yarn serve
に使うようのつもりのコンテナ
firebase
で使うつもりのコンテナ
- 9005 portを使うようなのでここを開けたコンテナを作った(デプロイには必要らしい)
- しかしデバッグなどに使うようにするにはほかの方法が必要かもしれない
version: '3'
services:
app:
build:
context: .
dockerfile: dockerfile-app
container_name: study-record
ports:
- '8080:8080'
volumes:
- ./:/src
stdin_open: true
tty: true
firebase:
build:
context: .
dockerfile: dockerfile-firebase
container_name: firebase-container
ports:
- '9005:9005'
volumes:
- ./:/src
stdin_open: true
tty: true
docker file の用意
FROM node:lts-alpine
WORKDIR /src
RUN yarn global add @vue/cli
COPY . /src
RUN yarn
RUN yarn build
FROM node:lts-alpine
WORKDIR /src
RUN yarn global add firebase-tools
COPY . /src
RUN yarn
RUN yarn build
docker-compose の起動とfirebaseのほうコンテナに入る
## Docker setup
docker-compose up --build -d
docker exec -it study-record /bin/sh
docker exec -it firebase-container /bin/sh
vue3/typescriptのプロジェクトのひな形作成
- 内容はお好みで
- 注意: ビルドしたファイルは
dist
ディレクトリに展開されるのでデプロイ先のディレクトリを変更する
vue create study-record
yarn でビルドできるようにしておいた
firebase のセットアップ
- ブラウザでfirebaseのプロジェクトを作成
- WebAppを作っておく
firebase login
firebaes init
vueプロジェクトのビルド
- eslintにすごい怒られるのでとりあえずfixを付けた あとで調べる
Replace `'study-record-app'` with `"study-record-app"
- ソースコード上はダブルクォーテーションを使っていたがビルドするとシングルクォーテーションになってしまっているようだった
yarn build --fix
firebaseのデプロイ
firebase deploy