Docker
ObjectOS をコンテナで実行する — 評価、ステージング、本番のいずれにも対応。
Docker
Docker は、多くのチームが本番環境へ到達するために選ぶ経路です。これは、ランタイムが本来意図されている運用方法と一致します。すなわち、インスタンスごとに 1 つのステートレスなコンテナ、外部データベース、ファイル用の外部オブジェクトストア、そして実行時に注入されるシークレットです。
ビルド済みイメージを取得する
main へのプッシュごとに、およびタグ付きリリースごとに、ランタイムイメージを GitHub Container Registry へ公開しています。
docker pull ghcr.io/objectstack-ai/objectos:latest利用可能なタグ:
| タグ | チャネル |
|---|---|
latest | main の最新ビルド(初回評価に推奨) |
main | latest と同じだが明示的 |
sha-<short> | 特定のコミットに固定(本番に推奨) |
vX.Y.Z, X.Y, X | タグ付きリリース |
本番環境では、sha-<short> または semver タグに固定してください。latest は変動します。
同梱サンプルで実行する
docker run --rm -p 3000:3000 \
-e OS_AUTH_SECRET="$(openssl rand -hex 32)" \
ghcr.io/objectstack-ai/objectos:latest次に http://localhost:3000 を開きます。このイメージには空のサンプルアプリが同梱されているため、独自のアーティファクトを指定する前に、ランタイムが起動し Console/Account が描画されることを確認できます。
OS_AUTH_SECRET は起動に必須です。これをローテーションすると既存のセッションは無効になります。
独自のアーティファクトで実行する
アプリ定義は単一のファイルです: dist/objectstack.json。これは次の方法で生成されます。
| ソース | 方法 |
|---|---|
| 独自のプロジェクト | objectstack.config.ts を編集した後に pnpm exec objectstack compile |
| テンプレート | テンプレートリポジトリ からクローンし、pnpm install && pnpm exec objectstack compile を実行 |
| アプリ marketplace | 公開アプリの一部として提供 |
このファイルを /artifacts/objectstack.json にマウントし、ランタイムがそれを指すように設定します。
docker run --rm -p 3000:3000 \
-e OS_AUTH_SECRET="$(openssl rand -hex 32)" \
-e OS_ARTIFACT_FILE=/artifacts/objectstack.json \
-v "$PWD/dist:/artifacts:ro" \
-v objectos-data:/var/lib/objectos \
ghcr.io/objectstack-ai/objectos:latestobjectos-data ボリュームには、SQLite データベース(外部 DB が構成されていない場合)とローカルに保存されたアップロードファイルが保持されます。
SQLite の代わりに Postgres を使用する
docker run --rm -p 3000:3000 \
-e OS_AUTH_SECRET="$(openssl rand -hex 32)" \
-e OS_ARTIFACT_FILE=/artifacts/objectstack.json \
-e OS_DATABASE_DRIVER=postgres \
-e OS_DATABASE_URL='postgres://user:pass@db.internal:5432/myapp' \
-v "$PWD/dist:/artifacts:ro" \
ghcr.io/objectstack-ai/objectos:latestドライバーと接続オプションの完全な一覧については、ランタイム構成を参照してください。
Docker Compose
リファレンスとなる docker-compose.yml はリポジトリの docker/ 配下にあります。
git clone https://github.com/objectstack-ai/objectos.git
cd objectos
mkdir -p docker/artifacts
cp /path/to/your/objectstack.json docker/artifacts/
export OS_AUTH_SECRET="$(openssl rand -hex 32)"
docker compose -f docker/docker-compose.yml upデフォルトポートは 3000 です。OBJECTOS_PORT=3200 docker compose ... で上書きします。
独自のイメージをビルドする
アーティファクト、カスタムプラグイン、または独自の SSL/CA バンドルを埋め込む必要がある場合:
git clone https://github.com/objectstack-ai/objectos.git
cd objectos
docker build -f docker/Dockerfile -t myorg/objectos:custom .同梱の Dockerfile はマルチステージビルドで、Node 20 Alpine 上にスリムなランタイムイメージを生成します。
分離して管理すべきもの
| 資産 | 配置すべき場所 |
|---|---|
アーティファクト(objectstack.json) | イメージ(イミュータブル)またはマウントされたボリューム |
| 業務データベース | 外部管理の Postgres / MySQL / Mongo |
| アイデンティティとセッション | 同じデータベース |
| アップロードファイル | 外部管理の S3 / R2 / ディスクボリューム |
シークレット(OS_AUTH_SECRET、DB URL、API キー) | シークレットマネージャー(環境変数として注入) |
| ログ | stdout — ログドライバーによって収集 |
検証
起動後:
curl -fsS http://localhost:3000/health
# {"status":"ok",...}次に http://localhost:3000/_account/register でサインインし、API が応答することを確認します。
curl http://localhost:3000/api/v1/data/<your-object>次のステップ
- Kubernetes — 本番グレードのオーケストレーション
- エアギャップ — インターネット送信なしでの実行
- 本番準備 — プリフライトチェックリスト
- オブザーバビリティ — ログ、メトリクス、監査