6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Elixir 挑戦記 - 開発環境構築

Last updated at Posted at 2023-02-24

Elixir 挑戦記

  • 統合的アプローチによる学習
  • とりあえず手を動かしてみるシリーズ
  • 調べたり取り組んだりした内容をひたすら書いていく
  • あとで整理してまとめたい

今回の記事について

こちらの記事を参考に、開発環境を作成

フォルダ構成

dev
├ app (mix project)
│  ├─ 自動生成されたファイル群(mix.exs など)
│  └─ run.sh
├ data (ノートブック置き場)
├ docker-compose.yml
└ Dockerfile

各ファイルの設定

run.sh
cd /app
mix local.hex --force
mix local.rebar --force
mix deps.get
mix compile
iex --sname sname@app --cookie cookie -S mix
docker-compose.yml
---
version: "3.2"

services:
  app:
    build: .
    tty: true
    volumes:
      - ./app:/app
      - _build:/app/_build # Volume Trick
      - deps:/app/deps # Volume Trick
  livebook:
    image: livebook/livebook:0.8.1
    ports:
      - 8080:8080
    environment:
      - LIVEBOOK_COOKIE=sname
      - LIVEBOOK_DEFAULT_RUNTIME=attached:sname@app:cookie
    volumes:
      - ./data:/data

volumes:
  _build:
  deps:

Dockerfile
FROM hexpm/elixir:1.14.3-erlang-25.2.3-ubuntu-jammy-20221130

RUN apt-get upgrade -y \
  && apt-get update \
  && apt-get install -y \
  sudo \
  unzip \
  vim \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

CMD [ "/bin/bash", "/app/run.sh" ]

動かし方

cd dev
docker compose build
docker compose up

作業方法

  • http://localhost:8080でLivebookに繋いでコーディング
    • mix.exsで指定したdepsパッケージも利用可能
      • 変更時は IEx.Helpers.recompile() で対応できる
    • dbg/0 で効率アップを狙いたい
  • 最終的に*.exs としてエクスポートし、プロジェクトに含める
    • 順次実行で処理の流れを確認しやすい*.livemdも手元に残る

気になること

.devcontainerを利用すれば 開発 / 実行 の設定を分けられそうな気がするけど、一旦置いておく

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?