keeper/guacamole-db-postgres

Keeper Connection Managerを使用したPostgresのDockerによるデプロイ

イメージ: keeper/guacamole-db-postgres

keeper/guacamole-db-postgresは、PostgreSQLをDocker化してデプロイしたもので、Dockerの公式PostgreSQLイメージを基に構築されており、Apache Guacamoleデータベーススキーマで自動的に初期化されます。Keeper Connection Managerに含まれるパッケージを使用して構築され、同じEULAで利用できるようになっています。通常は、keeper/guacamoleイメージを使用して、コンテナ用のPostgreSQLデータベースを作成するために使用します。

環境変数

公式のPostgreSQLイメージがベースのため、以下に記載した環境変数に加えて、公式のDocker PostgreSQLイメージでサポートされているすべての環境変数が利用できます。

ACCEPT_EULA

環境変数ACCEPT_EULAは「Y」に設定して、Keeper Connection ManagerのEULAに同意したことを示す必要があります。このDockerイメージは、EULAの条件に従わないと使用できません。

POSTGRES_PASSWORD

PostgreSQL管理者パスワード。

GUACAMOLE_DATABASE

Apache Guacamoleで使用するために作成および初期化されたデータベースの名前。この環境変数は、最終的には公式のPostgreSQLイメージのPOSTGRES_DB環境変数にマッピングされます。省略した場合、公式のPostgreSQLイメージで定義されたデフォルト値が使用されます。

GUACAMOLE_DATABASE変数は、他のGuacamole固有の変数と整合性を保つためにここで設定しますが、POSTGRES_DBが設定されている場合は省略できます。

GUACAMOLE_ADMIN_PASSWORD

これは、guacadminユーザーの管理者パスワードです。

GUACAMOLE_USERNAMEおよびGUACAMOLE_PASSWORD

Guacamoleウェブアプリケーションに固有のPostgreSQLデータベースユーザーに使用するユーザー名とパスワード。この変数のペアは、公式のPostgreSQLイメージに含まれるPOSTGRES_USER環境変数およびPOSTGRES_PASSWORD環境変数とは異なり、作成されたユーザーの権限は制限されており、Guacamoleを実行するためにどうしても必要な権限のみが付与されます。

GUACAMOLE_USERNAMEGUACAMOLE_PASSWORDは、POSTGRES_USERPOSTGRES_PASSWORDで作成されたユーザーを代わりに使用できるため、厳密には必要ありませんが、最小権限の原則に従っていることを保証するために強く推奨されます。

Dockerシークレット

環境変数でデータを直接渡すのではなく、このイメージでサポートされている任意の環境変数に_FILEサフィックスを付加して、コンテナ内の指定されたファイルからその変数を強制的に読み込ませることができます。Dockerシークレットは機密データをコンテナ内の/run/secrets/配下のファイルに格納するため、これを使用して機密データをDockerシークレットから読み込めます。

たとえば、Guacamoleウェブアプリケーション固有の、権限が制限されたユーザーのユーザー名とパスワードをDockerシークレットから読み込む手順は以下のとおりです。

docker run --name some-guacamole-db \
    -e ACCEPT_EULA=Y \
    -e GUACAMOLE_DATABASE=guacamole_db \
    -e POSTGRES_PASSWORD=some_password \
    -e GUACAMOLE_ADMIN_PASSWORD=some_password \
    -e GUACAMOLE_USERNAME_FILE=/run/secrets/postgres-username \
    -e GUACAMOLE_PASSWORD_FILE=/run/secrets/postgres-password \
    -d keeper/guacamole-db-postgres

Last updated