Copy & Paste Engineer

【Docker】Elixir Phoenix の環境を作る

【Docker】Elixir Phoenix の環境を作る

Docker で Elixir Phoenix の環境を作る

作成する環境

Docker Compose ファイル作成

docker-compose.yml を用意します。 作るのは Elixir Phoenix の環境です。 Postgresも入っています。

version: '3.2'
services:
  elixir-phoenix:
    build:
        context: .
        dockerfile: ./Dockerfile
    ports:
      - '4000:4000'
    # command: mix phx.server
    tty: true
    environment:
      - MIX_ENV=dev
      - PORT=4000
    volumes:
      - ../:/app
    working_dir: /app/src

  db:
    image: postgres
    volumes:
      - .data/postgres:/var/lib/postgresql/data/pgdata
    environment:
      - PGDATA=/var/lib/postgresql/data/pgdata
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_HOST=db

DockerFileの用意

今回構築するElixirのバージョンは 1.14.2 ですが他のバージョンを使用する場合は elixir - Official Image - Docker Hub を見て指定してください。

FROM elixir:1.14.2

RUN mix local.hex --force && \
  mix archive.install hex phx_new 1.6.3 --force && \
  mix local.rebar --force

WORKDIR /app/src

Phoenix 環境を構築する

docker-compose up -d
docker-compose run elixir-phoenix bash
mix phx.new . --app my_app
# Configure your database
config :my_app, MyApp.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "postgres",
  password: "postgres",
  database: "my_app_dev",
  hostname: "db",
  pool_size: 10
http: [ip: {0, 0, 0, 0}, port: 4000],
mix deps.compile && mix ecto.create && mix ecto.migrate
mix phx.server

http://localhost:4000 に接続してWelcomeページが出たら成功です。 phoenix

    command: mix phx.server

参考