Dockerを起動させてRailsを動かす

Dockerfileを作成

FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp // 変更
WORKDIR /myapp // 変更
COPY Gemfile /myapp/Gemfile // 変更
COPY Gemfile.lock /myapp/Gemfile.lock // 変更
RUN bundle install
COPY . /myapp // 変更



docker-compose.yamlを作成

version: '3'
services:
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp // 変更
    ports:
      - "3000:3000"



docker-composeを起動

docker-compose run web rails new
docker-compose build
docker-compose up


ブラウザ上でアクセスできるか確認



docker-composeを停止

docker-compose down

DBのマイグレーションが上手くいかない

問題

マイグレーションしようとしてもエラーが出る

$ docker-compose -f ./migration-docker-compose.yml run liquibase migrate db db_migration.yaml
[DEBUG] db_migration.yaml
Unexpected error running Liquibase: Could not acquire change log lock.  Currently locked by e2463b55fa2d (172.18.0.7) since 9/26/18 3:53 AM



解決

DELETE FROM DATABASECHANGELOGLOCK;

DOMとは

DOM

DOMは「Document Object Model」の略
HTMLやXML文書をプログラムから利用するための仕組みのこと
DOMはツリー状の構造で、HTML文書にアクセスして情報を得たりするためのもの



Node

ツリー状の構造は、結束点や末端のことをNodeという
DOMでは、Nodeのことをelementと呼ぶ

同期処理・非同期処理とは

同期処理

普通プログラムは、上から順番に処理を行う

処理1

処理2

処理3

処理を終わるまで待って次に進む方式を同期処理という



非同期処理

「非」同期処前理は、同期処理ではないということ
したがって、非同期処理とは、前の処理が終わる前に次に進む方式
時間のかかる重たい処理でよく用いられる

時間差で実行される処理には、コールバック関数を指定しておく
コールバック関数とは、処理が終わった時に呼び出される関数のこと