11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ElixirAdvent Calendar 2024

Day 4

Docker + VSCodeで気軽に遊びのElixir環境をつくる

Last updated at Posted at 2024-12-02

遊び専用ですセキュリティーは無視してます

ソースはコンテナを改良をしないと外部に保存できません
技術的には可能ですが、今回は書きません

前提

下記がインストール済みであること

  • Docker
  • VSCode

環境作成

Elixir + sshd環境のイメージ作成

Dockerfile
FROM elixir:1.17.2-otp-26 as exec
RUN apt update -y && apt install -y build-essential inotify-tools npm git openssh-server
RUN mix do local.hex --force, local.rebar --force, archive.install --force hex phx_new
RUN mkdir /var/run/sshd; \
  echo 'root:hoge' | chpasswd; \ 
  echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config; \
  echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

CMD ["/usr/sbin/sshd", "-D"]

上記Elixirイメージとdb起動の為のdocker-composeファイル

docker-compose.yml
version: '3'
services:
  web:
    build:
      context: .
      target: exec
      dockerfile: Dockerfile
    tty: true
    links:
      - db
    ports:
      - 4000:4000
      - 2222:22
  db:
    image: postgres:15.3-alpine
    environment:
      POSTGRES_PASSWORD: postgres
    ports:
      - 5432:5432

起動

$ docker compose up -d

VSCodeでコンテナにアクセス方法

前提下記の拡張機能がインストール済みであること

  • Remote - SSH: Editing Configuration Files
  • Remote - SSH

image.png

sshでコンテナに接続

左下の青いリモートウインドを開くアイコンをクリック
image.png

ホストに接続するをクリック
image.png

新規SSHホストを追加するをクリック

image.png

ssh root@localhost -p 2222を入力
image.png

一番上を選択
image.png

右下に表示している接続をクリック
image.png

VSCodeがもう一つ開くのでパスワードを入力
今回はhegeです
image.png

ターミナルからworkフォルダーを作る

ターミナルが無い場合
メニューターミナル新しいターミナルで表示できます

# mkdir work

image.png

フォルダーを開くからworkフォルダーを開く
image.png

/root/workを指定してOKをクリック
image.png

Elixirのプロジェクトを作る

image.png

~/work# mix new hoge

下記の画面になります
image.png

testを実行(動作確認)

~/work# cd hoge
~/work/hoge# mix test

下記の画面になります

image.png

ソースを開く

エクスプローラーから
hoge/lib/hoge.ex をクリックしてください
image.png

エクスプローラーが表示してない場合
image.pngこのアイコンクリックで表示できます

# ElixirLSのインストール
拡張機能からElixirLSをインストールする
image.png

インストールが成功すると先ほどのhoge/lib/hoge.exがカラフルになります

image.png

ElixirLSはElixirの構文が見やすくなります

ソースを変更してみる

下記の2行を追加します

hoge/lib/hoge.ex
# 省略
  def hello do
+    Enum.sum(1..5)
+    |> IO.inspect()
    :world
  end
# 省略

実行

~/work/hoge# mix test

実行結果
1〜5の合計で15になりました
image.png

11
0
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
11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?