Ruby / Rails

[Docker・Rails]herokuにデプロイ後、circleCIでパイプラインを構築

2019年9月20日

こんにちは、Nanayakuです。

DockerでRails環境構築 + CircleCIで自動テストとherokuへの自動デプロイを実行 - Qiita」を参考にherokuへデプロイ後、circleCiでCI/CDを実装したので、その時の手順などを備忘録がわりに書き残そうと思います。

こんな方におすすめ

  • circleCIを使ってherokuにデプロイをしたい
  • 転職の時、周りの実務未経験者と差別化をしたい

 

開発環境

  • Docker version:19.03.1
  • docker-compose version:1.24.1
  • ruby version:2.6.3
  • rails version:5.1.7
  • CircleCI: 2.0

 

前提条件

heroku のアカウント作成

circleCIアカウントをGItHubで登録

 

Docker環境のアプリを作成

Dockerfile・docker-compose.ymlは下記の通りで、Twitterのクローンアプリを作成していました。

FROM ruby:2.6.3
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client imagemagick graphviz
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
version:  '3'
services:
  db:
    image:  postgres
    environment:
      POSTGRES_PASSWORD: example
    ports:
    - '5432:5432'
    volumes:
      - postgresql-date:/var/lib/postgresql/date
    tty:  true
  web:
    build:  .
    command:  bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
    tty:  true
volumes:
  postgresql-date:
    driver: local

アプリのディレクトリはデスクトップに配置していました。

MVCなどが知りたい人は、GitHub(https://github.com/sabakan789/Paralink)をみて下さい。

 

heroku にデプロイ

heroku コマンドを実行するために、「Heroku CLI」をこちらからダウンロードします。

その後、こちらの記事通りにコマンドを実行するとherokuにデプロイすることが出来ます。

上記の記事に詳しくコマンドの解説などしているので、ここでの説明を省きます。

 

circleCIでパイプラインの構築

herokuへのデプロイが完了したら、circleCIにGitHubでログインします。

すると画像のように、GitHubのリポジトリ一覧が表示されるので、その中から、herokuにデプロイしたリポジトリを選択してFollowをクリックします。

herokuにデプロイするために、環境変数を設定します。

プロジェクトの横の歯車をクリックして、「Environment Variables」の「Add Variable」を選択します

ここから先の環境変数の設定・circleCIの設定ファイルとシェルスクリプトの作成は、「CircleCIを用いてCI / CDパイプラインを構築」通りに進めて、最後に「$ git push」すれば、画像のようにcircleCIでテスト・デプロイに成功したと表示されます。

環境変数の4番目Nameの「HEROKU_AUTH_TOKEN」は「HEROKU_APP_NAME」で設定して下さい。

 

参考サイト

DockerでRails環境構築 + CircleCIで自動テストとherokuへの自動デプロイを実行 - Qiita

 

最後に

DockerでRails環境構築 + CircleCIで自動テストとherokuへの自動デプロイを実行 - Qiita」は、herokuへのデプロイからcircleCIの設定まで、丁寧に解説しています。

ただ、circleCIの表示が現在(2019/9/20)変わっているようなので、画像付きで補足をさせて頂きました。

-Ruby / Rails
-

© 2021 Nanayaku blog Powered by AFFINGER5