DEV Community

dala00
dala00

Posted on • Originally published at crieit.net

Dockerでdev.toのLocal環境構築を試した(途中止め)

先日dev.toがGitHubに公開され、オープンソース化されました。ローカル環境の構築方法も公開されていたため、実際に試してみました。あまりPCを汚したくないので今回はdocker-composeを利用して、Dockerで環境を構築してみました。

設定

docker-compose.yml

  • gemとDBのデータはvolumeに保存して永続化
  • DockerHubにあったyarnが入っているrubyの適当なDockerイメージを使った
  • Algolia関連の環境変数は適当に入れておく
version: '2'
volumes:
  bundle:
    driver: local
  db_data:
    driver: local
services:
  db:
    image: postgres
    volumes:
      - db_data:/var/lib/postgresql/data
    expose:
      - 5432
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
  app:
    image: electrotumbao/ruby-yarn:2.5.1
    volumes:
      - bundle:/usr/local/bundle
      - .:/app
    working_dir: /app
    ports:
      - 3000:3000
    depends_on:
      - db
    environment:
      RAILS_ENV: development
      GITHUB_KEY: aaaa
      GITHUB_SECRET: bbbb
      ALGOLIASEARCH_APPLICATION_ID: 1111
      ALGOLIASEARCH_SEARCH_ONLY_KEY: awefawf
      ALGOLIASEARCH_API_KEY: awefawfe
    tty: true
    stdin_open: true
Enter fullscreen mode Exit fullscreen mode

database.yml

うまいやり方があるのかちょっと分からなかったので、とりあえず直接書き換えておきます。セットアップ時にtestもマイグレーションしているっぽいのでtestも同様の設定をしておく必要があります。

host: db
username: postgres
password: postgres
Enter fullscreen mode Exit fullscreen mode

手順

Dockerコンテナを起動

docker-composeしてDockerコンテナを起動し、中に入ります。

docker-compose up -d
docker-compose exec app bash
Enter fullscreen mode Exit fullscreen mode

色々インストール

gem install bundler
gem install foreman
bundle install
bin/yarn
bin/setup
Enter fullscreen mode Exit fullscreen mode

Algoliaは有料なので、設定に適当な値を入れているのですが、bin/setupの際のSeedの実行でエラーになるっぽいです。ただ、マイグレーションは完了するっぽいので、無視しています。

起動

とりあえずここまでで一応最低限の設定は一通り行っていると思いますので、試しに起動してみます。専用の起動スクリプトがあるようなのでそれを使います。

bin/startup
Enter fullscreen mode Exit fullscreen mode

動いたっぽいのでlocalhost:3000にアクセスしてみます。

You are not connected to the Internet.png

なんか変な画面が出てきました。

良いニュースと悪いニュースがあるんだ。悪いニュースはあんたがオフラインってことさ。いいニュースはここでは絵を書けるんだぜ

というよく分からないメッセージが出てきます。原因はよく分からないのですが、どうもserviceworkerあたりが関係あるかも知れません。

仕方がないので、とりあえずはrailsのサーバーで起動してみます。

bin/rails s
Enter fullscreen mode Exit fullscreen mode

ダウンロード.png

初回は表示までに時間がかかる(?)ようですが一応dev.toっぽい画面が表示されるっぽいです。

まとめ

とりあえずなんとなくdev.toの画面が表示されるところまで試してみました。是非色々な方法でローカル環境を構築してdev.toのcontributeまで試してみてください!

Top comments (0)