コンテンツにスキップ

アプリのインストール

scripts/install-app.sh は、myclinic-next アプリ本体を、ローカルのディレクトリ、または SSH でつながるリモートのディレクトリにインストールするスクリプトです。

本番用の Docker イメージを 実行元のマシン でビルドし、docker save | gzip → 転送 → docker load の流れで対象に配置します。対象側ではイメージのビルドは行わず、転送されたイメージを読み込むだけです(配置後、転送用の tar ファイルは削除されます)。

イメージの読み込み後、docker compose up -d で起動できるよう、対象ディレクトリに compose.yaml.env・空の file-data/ を書き出します。

ホストネットワーク

アプリはホストネットワーク(network_mode: host)で動作します。コンテナはホストのネットワーク名前空間を共有するため、MYCLINIC_DB_HOST=127.0.0.1 でホストのループバック上にある DB に到達でき、アプリのポートは直接ホスト側に公開されます。

使い方

# リポジトリのルートから実行します
./scripts/install-app.sh [オプション] TARGET

TARGET はイメージの配置・読み込みを行うディレクトリです(省略すると対話的に尋ねられます)。

形式 意味
/home/hangil/myclinic-next ローカルのディレクトリ
user@host:/home/hangil/myclinic-next SSH 経由のリモートのディレクトリ

オプション

各値は、フラグを省略した場合、端末があれば対話的に尋ねられます(DB パスワードは非表示入力)。端末が無い場合は既定値が使われます。

オプション 内容 既定値
--image NAME ビルドして配置するイメージのタグ myclinic-next:latest
--is-demo デモ版としてビルドする(--build-arg IS_DEMO_SITE=true
--port N アプリを公開するホスト側ポート 3200
--db-host H MYCLINIC_DB_HOST host.docker.internal
--db-port N MYCLINIC_DB_PORT 3306
--db-user NAME MYCLINIC_DB_USER myclinic
--db-pass PW MYCLINIC_DB_PASS(必須。省略時は非表示入力、空は不可) (必須)
--db-name NAME MYCLINIC_DB_NAME myclinic
--uid N / --gid N アプリコンテナの HOST_UID / HOST_GID 対象ユーザーの id -u / id -g
--up 配置後に対象で docker compose up -d を実行する
-h, --help ヘルプを表示する

DB パスワードは必須

MYCLINIC_DB_PASS は必須で、空にできません。--db-pass で指定するか、端末で実行して非表示入力してください。

前提条件

  • 実行元のマシン: イメージをビルドするため docker が必要です。リポジトリのルートに Dockerfile があることを前提とします。
  • 対象のマシン: イメージを読み込むため docker が必要です。

生成されるファイル

インストール先には次のファイルが作成されます。

ファイル 内容
compose.yaml アプリイメージを起動する Docker Compose 定義(スクリプトが生成)
.env イメージタグ・アプリポート・DB 接続情報・HOST_UID/HOST_GID(パーミッション 600
file-data/ アプリのデータディレクトリ(コンテナ内の /myclinic-data にマウント)

# ローカルにインストールする
./scripts/install-app.sh /home/hangil/myclinic-next

# リモートのサーバーにインストールする
./scripts/install-app.sh deploy@server105.internal:/home/hangil/myclinic-next

# 対話モード(ローカル/リモート・ホスト・ディレクトリを順に尋ねる)
./scripts/install-app.sh

--up を付けなかった場合は、最後に起動用のコマンドが表示されます。

cd <インストール先> && docker compose up -d

関連

  • データベースを先に構築する場合は、データベースのインストールを参照してください。ここで設定した DB ユーザー・パスワード・ポートを、本スクリプトの --db-user / --db-pass / --db-port に指定します。
  • アプリが参照する環境変数の一覧は、インストールの概要を参照してください。