Closed9
Vite + Vue3 + Docker 環境構築 手順
参考記事
準備
まずは必要な作業ディレクトリとファイルを作成する。
terminal
~/docker_tutorial
❯ mkdir DockerVite && cd DockerVite
~/docker_tutorial/DockerVite
❯ touch Dockerfile docker-compose.yml
~/docker_tutorial/DockerVite
❯ ls
Dockerfile docker-compose.yml
Dockerファイルの構築
Dockerfile
# slim系のnodeから構築することを定義
FROM node:16.17.1-bullseye
# コンテナ内の作業ディレクトリを作成
WORKDIR /app
# パッケージ一覧(インデックス)を更新
RUN apt update \
&& yarn install
# ポート番号5173でコンテナを公開
EXPOSE 5173
Docker Hubには3種類のnodeイメージがあるらしい。
node:<version>
node:<version>-alpine
node:<version>-slim
それぞれの特徴は以下で確認できる。
▼ 通常イメージとAlpineは安易に使用しない方が良いらしい。
docker-compose.ymlの構築
docker-compose.yml
version: '3.9' # docker-composeのバージョン選択
services:
frontend: # サービス名
build: # Dockerfileの設定
context: . # Dockerfileを置いているディレクトリ
dockerfile: Dockerfile # Dockerfileのファイル名
working_dir: /app # 作業ディレクトリを指定
volumes:
- ./:/app:cached
tty: true # コンテナを正常終了するのを防ぐ
ports:
- '5173:5173' # 公開用のポート指定。ホスト側:コンテナ側
command: yarn dev --host # viteの実行コマンド
▼ volumes
のcached
オプションについて
▼ tty
について
ビルド
以下を実行して、エラーを吐かなければ成功。
terminal
$ docker-compose build
Building frontend
[+] Building 82.3s (8/8) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 109B 0.0s
[...]
=> => naming to docker.io/library/dockervite_frontend 0.0s
Viteでプロジェクト作成
以下を実行。
terminal
# docker-compose run [サービス名] yarn create vite
$ docker-compose run frontend yarn create vite
Creating network "dockervite_default" with the default driver
Creating dockervite_frontend_run ... done
yarn create v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "create-vite@3.1.0" with binaries:
- create-vite
- cva
✔ Project name: … docker-vite
✔ Select a framework: › Vue
✔ Select a variant: › JavaScript
Scaffolding project in /app/docker-vite...
Done. Now run:
cd docker-vite
yarn
yarn dev
Done in 51.57s.
$ ls
Dockerfile docker-compose.yml docker-vite
Dockerfile / docker-compose.yml の追加記述
まずは、Dockerfile
Dockerfile
FROM node:16.17.1-bullseye
WORKDIR /app
# 以下を追加する
COPY vite-app/ ./ # プロジェクトのコピー
###
RUN apt update \
&& yarn install
EXPOSE 5173
次にdocker-compose.yml
docker-compose.yml
version: '3.9'
services:
frontend:
build:
context: .
dockerfile: Dockerfile
working_dir: /app
volumes:
# 以下をviteのプロジェクト名に変更する
- ./vite-app:/app:cached
# 以下を追加する
- node_modules:/app/node_modules # 特定のパスを独立した名前付きボリュームとして定義
###
tty: true
ports:
- '5173:5173'
command: yarn dev --host
# 以下を追加する
volumes: # 名前付きボリュームの設定
node_modules:
▼ vite.config.js
をいじって--host
を実現できる
コンテナの再ビルド
terminal
$ docker-compose build --no-cache
Building frontend
[+] Building 25.9s (10/10) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
[...]
=> => naming to docker.io/library/dockervite_frontend 0.0s
▼ --no-cache
オプションについて
コンテナを立ち上げる
terminal
$ docker-compose up
frontend_1 | VITE v3.1.6 ready in 204 ms
frontend_1 |
frontend_1 | ➜ Local: http://localhost:5173/
frontend_1 | ➜ Network: http://172.18.0.2:5173/
http://localhost:5173/ にアクセスして動作確認。
このスクラップは2022/11/07にクローズされました