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