Upgrade to Pro — share decks privately, control downloads, hide ads and more …

すぐできるDocker

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 すぐできるDocker

2018 アジャイル事業部 年始のご挨拶

Avatar for hidekuni KAJITA

hidekuni KAJITA

January 25, 2018
Tweet

More Decks by hidekuni KAJITA

Other Decks in Programming

Transcript

  1. Dockerfileの作成 FROM ruby:2.5 RUN groupadd --gid 1000 developer \ &&

    useradd --uid 1000 --gid developer --shell /bin/bash --create-home developer RUN apt-get update && apt-get install -y nodejs ENV APP_HOME /usr/src/app RUN mkdir -p $APP_HOME WORKDIR $APP_HOME COPY Gemfile \ Gemfile.lock \ $APP_HOME/ ENV BUNDLE_GEMFILE=$APP_HOME/Gemfile \ BUNDLE_JOBS=4
  2. docker-compose.ymlの 作成 version: '3' services: db: image: mysql ports: -

    "3306:3306" volumes: - mysql_data:/var/lib/mysql app: build: . user: 1000:1000 command: bin/rails s -p 3000 -b "0.0.0.0" depends_on: - db ports: - "3000:3000" stdin_open: true tty: true volumes: - .:/usr/src/app - bundle_cache:/usr/local/bundle volumes: bundle_cache: mysql_data:
  3. config/database.ymlの 編集 diff --git a/config/database.yml b/config/database.yml index 6003576..2213f5b 100644 ---

    a/config/database.yml +++ b/config/database.yml @@ -14,8 +14,7 @@ default: &default encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root - password: - host: localhost + host: db development: <<: *default
  4. Dockerfile FROM ruby:2.5 RUN groupadd --gid 1000 developer \ &&

    useradd --uid 1000 --gid developer --shell /bin/bash --create-home developer RUN apt-get update && apt-get install -y nodejs ENV APP_HOME /usr/src/app RUN mkdir -p $APP_HOME WORKDIR $APP_HOME COPY Gemfile \ Gemfile.lock \ $APP_HOME/ ENV BUNDLE_GEMFILE=$APP_HOME/Gemfile \ BUNDLE_JOBS=4
  5. groupadd && useradd RUN groupadd --gid 1000 developer \ &&

    useradd --uid 1000 --gid developer --shell /bin/bash --create-home developer イメージ内にグループID(1000)と ユーザID(1000)のグループとユー ザを作成
  6. WORKDIR ENV APP_HOME /usr/src/app RUN mkdir -p $APP_HOME WORKDIR $APP_HOME

    イメージ内に /usr/src/app を 作成してコンテナ実行時の作業 ディレクトとする
  7. docker-compose.yml version: '3' services: db: image: mysql ports: - "3306:3306"

    volumes: - mysql_data:/var/lib/mysql app: build: . user: 1000:1000 command: bin/rails s -p 3000 -b "0.0.0.0" depends_on: - db ports: - "3000:3000" stdin_open: true tty: true volumes: - .:/usr/src/app - bundle_cache:/usr/local/bundle volumes: bundle_cache: mysql_data:
  8. データベース設定 services: db: image: mysql ports: - "3306:3306" volumes: -

    mysql_data:/var/lib/mysql サービス名はコンテナ間の名前解 決にも利用される
  9. アプリケーション設定 services: app: build: . user: 1000:1000 command: bin/rails s

    -p 3000 -b "0.0.0.0" depends_on: - db ports: - "3000:3000" stdin_open: true tty: true volumes: - .:/usr/src/app - bundle_cache:/usr/local/bundle