dockerでVue環境を構築
はじめに
少し前にReactでの環境構築を行なった。
今回はVueの環境を構築してみたので、備忘録として残す。
(React全然にできるようになってない…)
TL;DR
Dockerとdocker-composeでのVue環境の構築手順です。
初心者なので、かなり初歩的な内容で他の方が執筆なさった記事を参考にしています。
前提環境
pc: MacBookPro(2017)
os: Big Sur
Homebrew 3.4.10
Docker version 20.10.13
docker-compose version 1.29.2
Homebrew~docker-composeのインストールはdocker+poetryでpythonを使うの序盤に書いています。
ディレクトリ構成
下記のコマンドで作業をするディレクトリを作成します。
$ mkdir vueApp
Dockerfileとdocker-compose.yamlも空で良いので作成しておきます。作成コマンド例touch Dockerfile
。
今回の例では下記のような構成となります。
$ tree
.
├── Dockerfile
├── docker-compose.yaml
└── vueApp
環境構築手順
Dockerfileの作成
FROM node:16.15.0
WORKDIR /usr/src/app
NodeJsのバージョンを公式サイトで確認します。その後に、該当のバージョンをDockerHubのnodeリポジトリで探します。
私が確認した時はNodeJs 16.15.0がLTSだったので、nodeイメージはnode:16.15.0-alpineを使用します。
docker-compose.yamlの作成
version: '3.9'
services:
vue-app:
build:
context: .
dockerfile: Dockerfile
tty: true
environment:
- NODE_ENV=development
volumes:
- ./vueApp:/usr/src/app
command: sh -c "cd vue-sample && npm run serve"
ports:
- "8080:8080"
コンテナとVueプロジェクト作成
下記のdocker-composeコマンドでコンテナを起動します。
$ docker-compose build
次のコマンドでプロジェクトを作成。
Reactでは--template typescript
オプションを付けるとtypescriptをインストールで来ましたが、Vueでは異なります。(Vue3ではVue自体がTypeScriptを使って記述されていることもあり特別な設定を行うことなくTypeScriptを利用できるそうです。)
まだ、詳しく読んでないですが、簡単な例で始めるVue3でTypeScript入門が参考になりそう?
$ docker-compose run --rm vue-app sh -c "npm install -g @vue/cli @vue/cli-init && vue create vue-sample"
---
Vue CLI v5.0.4
? Please pick a preset: (Use arrow keys)
❯ Default ([Vue 3] babel, eslint)
Default ([Vue 2] babel, eslint)
Manually select features
---
Vue CLI v5.0.4
? Please pick a preset: Default ([Vue 3] babel, eslint)
? Pick the package manager to use when installing dependencies:
Use Yarn
❯ Use NPM
---
Creating project in /usr/src/app/vue-sample.
⚙️ Installing CLI plugins. This might take a while...
added 844 packages, and audited 845 packages in 4m
86 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
🚀 Invoking generators...
📦 Installing additional dependencies...
added 95 packages, and audited 940 packages in 44s
96 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
⚓ Running completion hooks...
📄 Generating README.md...
🎉 Successfully created project vue-sample.
👉 Get started with the following commands:
$ cd vue-sample
$ npm run serve
上記のような成功メッセージが完了されればOKです。
コンテナ起動
下記のコマンドでコンテナ起動します。オプションで-d
を付けるとバックグランドで動作します。
$ docker-compose up (-d)
-d
オプションを付けない場合は別のターミナルなどで次のコマンドを実行してログを見てみます。
$ docker compose logs -f
下記のようなメッセージが表示されたらhttp://localhost:8080にブラウザからアクセスします。Vueの画面が表示されるはずです。
その他
今回はnpmやvue cliを使用したvueの環境構築を行ったが、npmやvue cliに慣れていないと最初は詰まると思う。
もし、大規模な開発をしない場合はCDN版を使ったほうが良い?
(自身の経験がないので今後使って行きたいと思います。)
参考
- 【Vue.js】Docker Composeで開発環境を構築する
- 【初心者向け】DockerでVueの環境を構築する手順を解説
- VueとFastAPIを連携させ画面表示を行う(Docker利用)
- 簡単な例で始めるVue3でTypeScript入門
最後に
ReactとVueはどちらを使えば良いのかすごく迷います。
初心者はVueの方が扱いやすいんですかね…
Discussion