Skip to content

0.プロジェクトの作成

Suzuki-Takumi0505 edited this page May 19, 2022 · 1 revision

Dockerコンテナの立ち上げ

phoenixプロジェクトの作成をする前にdockerイメージをビルドして立ち上げます。

docker-compose build
docker-compose up -d

※docker-compose build はコンテナを削除していない場合は(2回目以降のコンテナの立ち上げ)実行しなくても大丈夫です。

コンテナが立ち上がっていることを確認します。

docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
typing_app-db-1     "docker-entrypoint.s…"   db                  running             5432/tcp
typing_app-web-1    "bash"                   web                 running             0.0.0.0:4000->4000/tcp

STATUSが「running」になっていることを確認します。

コンテナが立ち上がっていることを確認したらwebコンテナの中に入ります。

docker-compose exec web /bin/bash

アプリケーションの作成

コンテナの中に入ったらアプリケーションを作成します。

mix phx.new typing

アプリケーションが作成できたらtypeing_appディレクトリに入りパッケージの取得、コンパイルをします。

cd typing
mix deps.get
mix deps.compile

DBにアクセスできるように以下のように変更します。

  • config/dev.exs
config :typing, Typing.Repo,
  username: "postgres",
  password: "postgres",
  hostname: "db",
  database: "typing_dev",
  show_sensitive_data_on_connection_error: true,
  pool_size: 10

DBを作成します。

mix ecto.create

コンテナ内からアクセスできるように以下を変更します。

  • config/dev.exs
config :typing, TypingWeb.Endpoint,
  # Binding to loopback ipv4 address prevents access from other machines.
  # Change to `ip: {0, 0, 0, 0}` to allow access from other machines.
  http: [ip: {0, 0, 0, 0}, port: 4000],
  check_origin: false,
  code_reloader: true,
  debug_errors: true,
  secret_key_base: "sMkt7bFvk9nfxl1aQFarW14SeIrrsJMndMSVLW7EPchly5d0ltHXumd0StwKrwHs",
  watchers: [
    # Start the esbuild watcher by calling Esbuild.install_and_run(:default, args)
    esbuild: {Esbuild, :install_and_run, [:default, ~w(--sourcemap=inline --watch)]}
  ]

サーバーを立ち上げてブラウザ上で表示されるか確認します。

mix phx.server

コンテナの抜け方・止め方

コンテナ内から抜けるには以下を入力します。(サーバーを立ち上げている場合は Ctr+C で止める)

exit

コンテナを停止したい場合は以下のコマンドを入力します。

docker-compose stop

コンテナの削除

このコンテナが不要になった場合は以下のコマンドを入力します。

docker-compose down