Running TPA in a Docker container
=================================

利用可能な :ref:`TPA installation <TPA installation>` がなく、 :ref:`Installing TPA from source <Installing TPA from source>` の後にTPAを実行することが難しい場合たとえば、動作するPython
3.12以降のインタープリターを入手するのは簡単ではないため、最後の手段はDockerイメージをビルドすることですそして、Dockerコンテナ内でTPAを実行します。

:ref:`Dockerのインストール <Dockerのインストール>` を行うためにDockerコンテナでTPAを実行する必要はないことに注意してください。可能であれば、MacOS
XでもTPAを直接実行することをお勧めします。

クイックスタート
----------------

システムにDockerをインストールして動作している必要があります。

次のコマンドを実行して、Githubからtpaexecソースリポジトリのクローンを作成し、\ ``tpa/tpaexec``
という名前の新しいDockerイメージをビルドします。

.. code:: shell

   git clone ssh://git@github.com/EnterpriseDB/tpa.git
   cd tpa
   docker build -f docker/Dockerfile --build-arg TPA_VER=$(git describe) -t tpaexec:latest .

作成したイメージをダブルチェックします。

.. code:: shell

   docker image ls tpaexec

.. code:: output

   REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
   tpaexec      latest    3943dec4d660   20 minutes ago   658MB

.. code:: shell

   docker run --rm tpaexec info

.. code:: output


   #  TPAexec v23.38.0-38-g4dc030dc1

   tpaexec=/usr/local/bin/tpaexec
   TPA_DIR=/opt/EDB/TPA
   PYTHON=/opt/EDB/TPA/tpa-venv/bin/python3 (v3.13.5, venv)
   TPA_VENV=/opt/EDB/TPA/tpa-venv
   ANSIBLE=/opt/EDB/TPA/tpa-venv/bin/ansible (v2.16.14)

次に、実行しているシェルセッションで\ ``tpaexec``
のエイリアスを設定する必要があります。

.. code:: shell

   alias tpaexec="docker run --rm -v $PWD:/work -v /var/run/docker.sock:/var/run/docker.sock tpaexec"

これで、次のようなコマンドを実行できます。

.. code:: shell

   tpaexec configure cluster -a M1 --postgresql 15 --failover-manager patroni --platform docker
   tpaexec deploy cluster

Dockerのインストール
--------------------

`install Docker <https://docs.docker.com/install>`_ および `get started <https://docs.docker.com/get-started/>`_ のヘルプが必要な場合は、
`Docker documentation <https://docs.docker.com>`_ を参照してください。

MacOS Xでは、次のことができます `install "Docker Desktop forMac" <https://hub.docker.com/editions/community/docker-ce-desktop-mac/>`_ 

そして、アプリケーションメニューからDockerを起動します。
