---
title: Docker Compose
description: Docker Compose を使い、お客様の PostgreSQL データベースに接続して、単一ホスト上で Human Plugin を実行します。
canonical: https://developer.unico.io/ja/human-plugin/self-hosting/docker-compose
locale: ja
generated_by: markdown-export
---

# Docker Compose

1台のホスト上で動作する1つの Human Plugin コンテナを、お客様の PostgreSQL データベースに接続します。

## 前提条件

- Docker Engine 24 以降と Docker Compose v2。
- Human Plugin 専用で、ホストから到達可能な PostgreSQL データベース。[前提条件とアクセス](/ja/human-plugin/get-started/prerequisites)を参照してください。
- Unico から提供されるレジストリの認証情報とアクセスキー。

## 1. レジストリにログインする

ホストごとに一度だけ実行します。Docker は認証情報を `~/.docker/config.json` に保存します。

```bash
echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin
```

## 2. 設定を書く

Human Plugin 用のディレクトリを作成し、所有者のみが読み取れる `.env` ファイルを作成します。

```bash
mkdir -p /opt/human-plugin && cd /opt/human-plugin
```

```bash title=".env"
HUMAN_API_ACCESS_KEY=<your access key>
POSTGRES_ADDRESS_HOST=<database host>
POSTGRES_USER=human_plugin
POSTGRES_PASSWORD=<database password>
```

```bash
chmod 600 .env
```

`POSTGRES_ADDRESS_PORT`、`POSTGRES_DATABASE`、`POSTGRES_SSL_MODE` は、お使いのデータベースが[設定](/ja/human-plugin/self-hosting/configuration)のデフォルト値と異なる場合にのみ追加してください。`.env` ファイルは決してコミットしないでください。

## 3. `compose.yaml` を書く

```yaml title="compose.yaml"
services:
  human-plugin:
    image: pkg.unico.run/human-plugin-api:latest
    pull_policy: always
    restart: unless-stopped
    stop_grace_period: 60s
    env_file: .env
    ports:
      - "127.0.0.1:8080:8080"
```

- **`ports`:** `127.0.0.1` またはプライベートインターフェースでのみ公開し、`0.0.0.0` では決して公開しないでください。Human Plugin には独自の認証機能がありません。[ネットワークとセキュリティ](/ja/human-plugin/self-hosting/networking-and-security)を参照してください。
- **`stop_grace_period: 60s`:** Human Plugin は、停止時に処理中のリクエストを最大55秒待ちます。猶予期間がこれより短いと、作成処理が途中で打ち切られる場合があります。
- **`pull_policy: always`:** `up` のたびに最新のイメージを確認するため、常に最新リリースを実行できます。

## 4. 起動する

```bash
docker compose up -d
```

```bash
curl --fail http://127.0.0.1:8080/health/ready
```

`/health/ready` が `200` を返してから、Human Plugin にトラフィックをルーティングしてください。その後、[クイックスタート](/ja/human-plugin/get-started/quickstart#3-create-a-process)の作成リクエストを実行します。

## ログとステータス

```bash
docker compose ps
```

```bash
docker compose logs -f human-plugin
```

正常な起動は `human plugin listening` の行で終わります。起動ログの全体は[ヘルスとモニタリング](/ja/human-plugin/self-hosting/health-and-monitoring#logs)を参照してください。コンテナが再起動を繰り返す場合、ログに理由が記載されています。[トラブルシューティング](/ja/human-plugin/additional-resources/troubleshooting)を参照してください。

## 更新

```bash
docker compose pull && docker compose up -d
```

Compose は、イメージが変更された場合にのみコンテナを置き換えます。更新後に確認すべき内容は[運用](/ja/human-plugin/self-hosting/operations)を参照してください。

## 停止

```bash
docker compose down
```

データはお客様の PostgreSQL データベースにあるため、コンテナを停止または削除しても何も失われません。