Nuxt + Rails の開発構成考えてみた

考えたきっかけ

新規サービス作るにあたって、構成考えてみた。
将来的にはアプリ化するということで、それを見越して、API + SPA の形にしてみた。 下の画像のイメージ。 正直、静的ファイルはCDNに置いた方がよくない?って感じだけど、Dockerの勉強も兼ねて。

f:id:okadak1990:20181212233035p:plain

開発用

version: '2'
services:
  app:
    build: .
    image: rails_dev
    volumes:
      - .:/app
    ports:
      - "3000:3000"

  nginx:
    build: nginx
    image: nginx_dev
    ports:
      - "80:80"
    volumes_from:
      - app
    depends_on:
      - app

  # railsディレクトリの中に、frontendというフォルダ名で、nuxtをぶっこんでる。
  nuxt:
    image: nuxt_dev
    build: frontend
    ports:
      - '4000:4000'
    volumes:
      - ./frontend:/frontend
      - node-modules-data:/frontend/node_modules

volumes:
  node-modules-data:

本番用

version: '2'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile_dev
    image: rails

  nginx:
    build: nginx
    image: nginx
    ports:
      - "80:80"
    volumes_from:
      - app
    depends_on:
      - app

docker-compose 一回で開発環境も、本番環境も起動できるようになった。 dockerすごい...けど、少人数開発ならlocalだけで良いのでは?と思ったりもする。