LoginSignup
29
35

docker-composeで始めるnuxt.js

Last updated at Posted at 2019-04-24

対象

  • docker、docker-composeをインストールしている方
  • vue.js,nuxt.js手軽に触ってみたいよという方
  • 開発環境の構築にそんなに時間かけたくないよという方

ゴール

  • docker-composeを利用したnuxt.jsの開発環境を手に入れる

docker-compose.ymlを書く

  • 以下写経
  • 実際Dockerfileだけで今回やる分には十分です。
    • storybookとか後々色々なもの導入したくなると思うので、先にdocker-compose.ymlで複数コンテナを管理できるようにしようという魂胆です。
docker-compose.yml
version: '3'

services:
  node: &app_base
    image: node:11.14.0-alpine # dockerhubにすでに上がっている
    tty: true
    working_dir: /var/www
    volumes:
      - ./src:/var/www # ./srcをコンテナ内の/var/wwwにマウントする
    environment:
      PORT: 3000
      HOST: 0.0.0.0
    restart: always # エラーなどでコンテナが落ちた際に自動で再起動してくれる

  workspace:
    <<: *app_base
    ports:
      - "3000:3000" # localhost:3000にポートをマッピングする
    command: yarn dev # upする際に実行されるコマンド

create-nuxt-appを使う

  • まずはdockerコンテナにshで入ってみよう
    docker-compose run --rm node sh

  • 以下コンテナ内で実行

/var/www # yarn global add create-nuxt-app

/var/www # create-nuxt-app ./
> Generating Nuxt.js project in /var/www # この後色々聞かれます
? Project name myNuxtApp # プロジェクト名
? Project description My finest Nuxt.js project # プロジェクトの説明
? Use a custom server framework none # サーバーサイドのフレームワーク
? Choose features to install Axios # Axiosやlintなど一緒にインストールするもの
? Use a custom UI framework none # UIフレームワーク
? Use a custom test framework none # Jestなどのテストフレームワーク
? Choose rendering mode Single Page App # レンダリングモード
? Author name # アプリケーション作成者の氏名
? Choose a package manager yarn # パッケージ管理にnpmかyarn

これで準備完了。ローカルの./srcにマウントしているので./src内にnuxtのプロジェクトができているかと思います。
コンテナから出ましょう。

/var/www # exit

いざ実行

  • コマンド一つでnuxtサーバーが立ち上がります。

docker-compose up workspace

http://localhost:3000 を確認すると...

スクリーンショット 2019-04-24 23.20.03.png

きちんと表示される!
nuxt.jsの開発環境がこれで整いました!

終わりに

  • まず始めるという部分にフォーカスして、シンプルにまとめてみました。
  • ここまででおよそ15分かからない位でnuxt.jsの環境が作れるのでぜひお試しください。
29
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
35