Help us understand the problem. What is going on with this article?

Phoenix製のOSS版のTrelloをdocker-composeで作ってみたよ

More than 3 years have passed since last update.

さくっと試してみたい人は、2-1をご覧ください。

1. やりたいこと

ElixirかつPhoenixのアプリケーションを探してソースコードリーディングをしてみたかったです。
GitHubを徘徊していたら下記を見つけました!

Trelloをphoenixで作成しているみたいですね^^

GitLabやMattermost等と違って、堂々と[Trello]と記載してしまっているようです。

2. ともあれまずは動くのか見てみたかったのでDocker化してみた

2-1. 起動スクリプト置き場

以下に今回作成したdocker-compose.ymlを配置しました。

起動方法は以下のとおりです。

環境変数を設定します

export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=postgres

フォアグラウンドで動かしたければ

docker-compose up

バックグラウンドで動かしたければ

docker-compose up -d

http://localhost:8000

の画面で利用が可能になります。

2-2. 動かした時の画面キャプチャ

スクリーンショット 2016-03-14 10.27.33.png

スクリーンショット 2016-03-14 10.42.11.png

スクリーンショット 2016-03-14 10.42.59.png

日本語の入力はできないみたいですね^^;
ログで、〜invliad charactert〜みたいな出力が出ちゃいます。

3. phoenix-trelloの技術要素

READMEを読むと以下のとおりでした。

  • Elixir
  • Phoenix
  • nodejs
  • postgresql

また、起動するにあたっては、migrationが事前に必要だよ、とありますので、RoR感覚でいけるかな、と試してみることにしました。

4. docker-compose.ymlの作成フロー

  1. phoenix-trelloのアプリケーションのイメージを作成
  2. postgresqlのイメージを流用
  3. 上記2つをdocker-compose.ymlでリンキングさせるように設定

4-1. phoenix-trelloのアプリケーションのイメージを作成

Dockerfileは以下のとおりです。

FROM tylerwaitt/phoenix

RUN git clone https://github.com/bigardone/phoenix-trello.git && \
    cd phoenix-trello && \
    yes | mix deps.get && \
    npm install webpack && \
    npm install

RUN apt-get update && \
    apt-get install -y erlang-dev build-essential

RUN wget https://raw.github.com/wiki/rebar/rebar/rebar && \
    mkdir -p /root/.mix && \
    cp rebar /root/.mix/rebar && \
    chmod u+x /root/.mix/rebar

ADD docker.exs phoenix-trello/config/

ADD docker-run.sh phoenix-trello/bin/

RUN chmod u+x phoenix-trello/bin/docker-run.sh

CMD ["phoenix-trello/bin/docker-run.sh"]

rebarとかは、Phoenixのルートディレクトリでmixコマンド叩くときに、入ってないと怒られちゃうので入れました。
また、地味にcompileも走るので、build-essentialが必要になりました。

4-2. postgresqlのイメージを流用

library/postgresを利用しました。
ユーザ名とパスワードは環境変数で設定できるようなので、docker-compose.ymlで設定しました。

4-3. 上記2つをdocker-compose.ymlでリンキングさせるように設定

docker-composeは以下のようになりました。

docker-compose.yml
pg:
  image: library/postgres:latest
  ports:
    - "5432:5432"
  environment:
    - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    - POSTGRES_USER=${POSTGRES_USER}
    - POSTGRES_DATABASE=phoenix_trello_dev
phoenix-trello:
  image: letusfly85/phoenix-trello:latest
  links:
    - "pg:postgresql"
  ports:
    - "8000:80"
  environment:
    - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    - POSTGRES_USER=${POSTGRES_USER}
    - POSTGRES_DATABASE=phoenix_trello_dev

5. 所感

  • ソースを読んでガチャガチャ動かしみて、phoenixアプリケーションのキャッチアップをしてみようと思います。
  • 日本語入力はまだ出来なさそうです。設定なのか、ソース回収が必要なのかも見てみようと思います。
  • 紫色じゃない画面がいいなぁ。。。

本日はここまでとなります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした