Rails: DockerでHeroku的なデプロイソリューションを構築する: 前編(翻訳)

概要 原著者の許諾を得て、CC BY-NC-SAライセンスに基づき翻訳・公開いたします。 英語記事: Creating a Heroku-like Deployment Solution with Docker 原文公開日: 2017/06/07 著者: Pedro Cavalheiro サイト: Semaphoreci.com 記事のボリュームが大きいので前編/後編に分割しました。後編は来週公開予定です。 Rails: DockerでHeroku的なデプロイソリューションを構築する: 前編(翻訳) Herokuライクなデプロイソリューションの構築方法を解説します。 特定のクラウドプロバイダや、Dockerと無関係なツールを必要としません。 はじめに 本チュートリアルでは、Herokuにデプロイする感覚でソフトウェアをシンプルに自動デプロイするツールの作成方法をご紹介します。デプロイごとのバージョン管理にはDockerを使い、アップグレードやロールバックをやりやすくします。また、アプリの継続的デプロイ(CD)に弊社のSemaphoreも使います。 コンテナは任意のDocker Registryにホスティングできます。アプリの実行に必要なのはDockerがインストールされているホストだけです。 チュートリアルを終えると、サンプルアプリをリモートホストにHerokuと同じようにデプロイできるシンプルなRuby CLIスクリプトが使えるようになります。直前のバージョンへのロールバック、ログの追加、実行中のアプリのバージョントラッキングを行えるコマンドもあります。 本チュートリアルはデプロイ手順を中心に据えていますので、用途に応じて環境を調整すれば任意のアプリで使えます。ここではシンプルなHello WorldをRuby on Railsでblogフォルダに構築します。Railsアプリ構築の初歩については、RailsガイドのRails をはじめようの手順1〜4をご覧ください。 必要なもの Docker: ホストと、アプリをデプロイするすべてのマシンにDockerがインストールされ、動作している必要があります。 Docker Registryのアカウント(Docker Hubなど) SSHアクセスが可能でDockerがインストールされているクラウドプロバイダ(AWS EC2など) Ruby 2.3: アプリをデプロイするすべてのマシンにインストールされている必要があります。 デプロイの手順 デプロイの手順は次の5つで構成されます。 ビルド: いつでも変更可能なビルド手順を備えた独自のコンテナをアプリごとにビルドします。 アップロード: アプリのコンテナのビルドが終わったらDocker Registryに送信する必要があります。初回はコンテナ全体のアップロードが必要なので多少時間がかかりますが、次回からはDockerのレイヤシステムでサイズや帯域を節約できるので速くなります。 接続: Docker … Continue reading Rails: DockerでHeroku的なデプロイソリューションを構築する: 前編(翻訳)