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

すぐできるDocker

 すぐできるDocker

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

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