アプリのインストール¶
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 に到達でき、アプリのポートは直接ホスト側に公開されます。
使い方¶
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 を付けなかった場合は、最後に起動用のコマンドが表示されます。
関連¶
- データベースを先に構築する場合は、データベースのインストールを参照してください。ここで設定した DB ユーザー・パスワード・ポートを、本スクリプトの
--db-user/--db-pass/--db-portに指定します。 - アプリが参照する環境変数の一覧は、インストールの概要を参照してください。