こんにちは、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)変わっているようなので、画像付きで補足をさせて頂きました。