タイタニックアプリを作ろう(Nuxt.js 開発環境の基本)

Kaggleのタイタニック問題は、機械学習の基礎として面白いので、それを活用し、かつ、技術書典の2冊で学んだことも生かして、アプリを作ってみましょう。

環境のイメージ

たどり着けるかわかりませんが、ゴールのイメージとしては、下記のようになります。

  • ローカルにDockerでNuxt.jsのWebアプリ環境
  • Jupyter Notebookで機械学習環境を作り、responder のAPIサービス環境はDockerで
  • Dockerプライベートでレジストリとして、GitLab Container Registry
  • プライベートレジストリからAzure App Service に公開

DockerによるNuxt環境構築

今回フォルダ構成はこのようにしています。

titanic
 -app
 --docker-compose.yml
 --client
 ---Dockerfile
 --server
 ---Dockerfile

参考にさせていただいたのはこちら。

Nuxt.jsの動作環境をdockerで作る
https://qiita.com/FrozenVoice/items/2ae89ce820cade84924e

若干新しいバージョンに変更しました。

client/Dockerfile

FROM node:12.1.0-alpine

RUN mkdir /app
WORKDIR /app

RUN npm install -g vue-cli

ENV HOST 0.0.0.0
EXPOSE 3000

docker-compose.yml

version: '3'
services:
  app:
    build: ./client
    volumes:
      - ./client:/app
    ports:
      - "3000:3000"
    tty: true
$ docker-compose build
$ docker-compose up -d
$ docker-compose exec app sh

実はここに至るまでも苦労しましたが、これでDocker環境に入れました!
そして、環境内でnuxtを入れますが、これは、下記を参照に、TypeScript構成を最初から作ります。

Nuxt.js + TypeScript + Sass + ESLint 事始め
https://qiita.com/ryota-yamamoto/items/4b06ef51926df1bdbae8

# vue init nuxt-community/typescript-template titanic-client
# cd titanic-client
# yarn install
# yarn run dev

無事起動しました!(変な画面・・・)

Nuxt TypeScript Starter起動時の画面