Vue.tsをDockerに構築


Vue.tsをDockerに構築したい

Vue.jsをDockerに構築をする方法はあったんですが、Vue3.0からTypeScriptが対応されたとの事だったのでせっかくならTSでやりたいと思ったので自分なりにやってみました。
OSはMacです。Dockerが入ってる前提で進めます。

Dockerfileを用意


FROM node:8.11.3-alpine

WORKDIR /app

RUN apk update && \
    npm install -g @vue/cli

EXPOSE 9000

CMD ["/bin/sh"]

コンテナのイメージをビルド

$ docker build -t vue_app_image .

ビルドしたイメージからコンテナを起動

$ docker run -v `pwd`:/app -p 9000:9000 --name vue_app -it -d vue_app_image

コンテナに入ってvueプロジェクトの準備

$ docker exec -it vue_app sh

コンテナ内でのコマンド

ここからが情報をかき集めて自分なりに行った方法です。

webpackが無いとエラーが出るのでインストールします。

/app # npm install --save-dev webpack webpack-cli webpack-dev-server

カレントディレクトリにVue Projectを作成

/app # vue create .

Manually select features を選択した後に使用言語を選ぶのでTypeScriptを選択します。

vue.config.jsをプロジェクトルートに作成

プロジェクトルートにvue.config.jsを作成すると自動で読み込まれるようです。すげえ


module.exports = {
    devServer: {
        host: '0.0.0.0',
        port: 9000,
        disableHostCheck: true,
    },
};

実行

/app # npm run serve

http://0.0.0.0:9000/にアクセスするとVueの画面が出てくるかと思います。
もっといい方法があれば教えてください。VueもDockerもまだまだなので...

参考サイト

https://qiita.com/nrslib/items/be90cc19fa3122266fd7
https://qiita.com/rh_taro/items/ca08b930f704275286a4
https://log.pocka.io/posts/vue-webpack-tutorial/
https://dev.classmethod.jp/client-side/spa/change-vue-project-devserver-port/