Yak shaving logs


My life is just yak shaving.

既存のRails & Vue.js (Webpacker) アプリをDockerで動かす

2017/10/30 #rails #docker #vue.js

By Yusuke Takita


こんにちは。Takitaです。

個人ブログをRailsとWebpackerを使ってVue.jsで運用しています。
最近メインマシンをMackBookProからThinkPadT470sに移したのはいいですが、環境構築だるいなーということでDockerで動かすようにしました。

こちらのdiffをみてもらうとだいたいわかると思います。
https://github.com/tackeyy/blog/pull/200/files

https://github.com/tackeyy/blog をpullしてもらって以下に記載している 3. からの手順を踏めば動きます。

前提

  • 既存のアプリをDockerで動かせるようにします
  • Railsの起動はforemanを使っており、foreman startでRailsが起動するようになっています

環境

$ docker-compose version
docker-compose version 1.16.1, build 6d1ac21
docker-py version: 2.5.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

1. Dockerファイル作成

+FROM ruby:2.4.1
+LABEL maintainer 'tackeyy'
+
+# Set environment variables
+ENV LANG C.UTF-8
+ENV ROOT_PATH /blog
+
+# Install essential libraries
+RUN apt-get update && apt-get install -y build-essential libpq-dev
+
+# Install node.js
+RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
+    apt-get install nodejs
+
+# Install yarn
+RUN apt-get update && apt-get install -y curl apt-transport-https wget && \
+    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
+    echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
+    apt-get update && apt-get install -y yarn
+
+# Fix: 'Cannot find module 'node-sass'
+RUN yarn add node-sass
+
+# Move to root
+RUN mkdir $ROOT_PATH
+WORKDIR $ROOT_PATH
+
+# Bundle install
+ADD Gemfile $ROOT_PATH/Gemfile
+ADD Gemfile.lock $ROOT_PATH/Gemfile.lock
+RUN bundle install
+
+# Install foreman
+RUN gem install foreman
+
+ADD . $ROOT_PATH

2. docker-compose.yml作成

+services:+version: '2'
+services:
+  db:
+    image: mysql:5.7
+    ports:
+      - "4306:3306"
+    environment:
+      MYSQL_USER: "root"
+      MYSQL_ALLOW_EMPTY_PASSWORD: "true"
+  web:
+    build: .
+    command: foreman start
+    volumes:
+      - .:/blog
+    ports:
+      - "5000:5000"
+      - "8080:8080"
+    depends_on:
+      - db

3. docker-compose.ymlに記載したサービスのビルド

$ docker-compose build

4. DB/テーブル/初期データ作成

$ docker-compose run web rake db:create db:migrate db:seed_fu

5. コンテナとサービスの起動

$ docker-compose up

これで localhost:5000 にアクセスすればOKです。

このエントリーをはてなブックマークに追加

categories


最新記事


tags