Railsの開発環境をCloud9からDocker(ローカル)に移行

Cloud9のAWSへの移行をきっかけに、Railsの開発環境を自前のDockerコンテナに移行した。

手順1.Cloud9からhomeディレクトリをダウンロード

Cloud9からのアーカイブダウンロードは、1. home directoryと2. workspace の2種類が選択可能。後者はDockerのコンテナーそのままであるがCloud9のIDE導入等の手間、今後のサーバー構成の自由度を高めたいことから、前者を選択しコンテナから作り直すことにした。

手順2.Dockerコンテナの作成

主にこのサイトの通りに進めたが、DBにPostgreSQL+PostGISを使用していたことから以下2点の変更を加えた。2点目については、この記事を参考にした。

Dockerfile: postgresql-clientの追加

# 追加
RUN apt-get install -y postgresql-client

docker-compose.yml: postgisイメージの利用

# image: postgres
image: mdillon/postgis

またherokuでのDBのmigration時に以下のエラーが発生。

Caused by: NoMethodError: undefined method `st_point' for #<ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition:0x0........>

この記事に記載の通り、DATABASE_URLの変更で解消した。

database.yml

production:
url: <%= ENV.fetch('DATABASE_URL', '').sub(/^postgres/, "postgis") %>

その他移行に伴って以下の作業を要した。

  • コンテナー作成後、PostgreSQLで # CREATE EXTENSION Postgis;の実行
  • サードパーティAPI, OAuthの承認ドメインの変更
  • gitサーバー, herokuに登録するSSH keyの変更

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA