**HNで話題:事前にコンテナを作らずに、どんな言語でもLLMをDocker上で実行する方法**

2026/01/14 21:59

**HNで話題:事前にコンテナを作らずに、どんな言語でもLLMをDocker上で実行する方法**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

改訂要約

この記事では、AI コーディングアシスタント(Codex、OpenCode、GitHub Copilot など)用に必要な Docker コンテナをオンデマンドで起動するコマンドラインツール agent‑en‑place のインストールと使用方法について説明しています。
前提条件は Docker、Go 1.21+、Bash/Zsh シェル、および GitHub Copilot を利用する場合に必要な

gh
CLI です。インストールは Homebrew(
brew install mheap/tap/agent-en-place
)、ソースからのビルド(
go build
)、または最新リリースバイナリをダウンロードして行うことができます。

インストール後、ユーザーは次のような小さなラッパー関数を定義します:

vibe() { bash -lc "$(agent‑en‑place $1)" }

そして任意のディレクトリで

vibe <provider>
を実行します。ツールは自動的に
.tool-versions
mise.toml
、または言語固有のバージョンファイル(
.nvmrc
.python-version
など)から言語バージョンを検出し、それらのツールを含む最小限の Debian 12‑slim イメージを構築して、そのコンテナ内でアシスタントを非 root ユーザー(UID 1000)として実行します。イメージは
mheap/agent-en-place:<tool1>-<version1>-<tool2>-<version2>-…
というパターンで命名されます。現在の作業ディレクトリは
/workdir
にマウントされ、プロバイダー設定ディレクトリもマウントされ、必要な環境変数(Copilot 用の
GH_TOKEN
等)が設定されます。

サポートされるプロバイダーには Codex (

@openai/codex
)、OpenCode (
opencode-ai
)、GitHub Copilot (
@github/copilot
) があり、それぞれに特定のコマンドフラグと設定場所があります。ツールは、すべてのサポートされるアシスタントが Node.js を必要としているため、明示的に指定されていない場合でも自動的に Node.js を含めます。
--debug
--rebuild
--dockerfile
などの高度なフラグは、ビルド出力を制御したり、イメージの再構築を強制したり、生成された Dockerfile を表示したりするために既に利用可能です。

agent‑en‑place は MIT ライセンスの下でリリースされています。

本文

agent‑en‑place

mise を使ってプロジェクト用のオンデマンド Docker コンテナとエージェント型コーディングを構築します。


前提条件

  • Docker(インストール済みかつ実行中)
  • Go 1.21+(ソースからビルドする場合に必要)
  • Bash または Zsh シェル
  • gh
    CLI (GitHub Copilot プロバイダーを使う際のみ必須)

インストール

Homebrew(macOS / Linux)

brew install mheap/tap/agent-en-place

ソースからビルド

git clone https://github.com/mheap/agent-en-place
cd agent‑en‑place
go build
# バイナリを PATH へ移動
mv agent‑en‑place /usr/local/bin/

バイナリのダウンロード

GitHub Releases から対象プラットフォーム用の最新リリースをダウンロードしてください。


使い方

シェル設定ファイル(

.bashrc
.zshrc
等)にヘルパー関数を定義します:

function vibe() { bash -lc "$(agent-en-place $1)" }

その後実行:

vibe <provider>

ツールは次のように動作します。

  • プロジェクト設定ファイルからツールバージョンを検出
  • それらのツールを含む Docker イメージ(または既存イメージ)をビルド/再利用
  • docker run
    コマンドを生成 & 実行
  • 選択した AI コーディングツールをコンテナ内で起動

設定

自動バージョン検出

agent‑en‑place
は複数のファイル形式からツールバージョンを読み取ります。

フォーマット
mise/asdf
.tool-versions
node 20.11.0\npython 3.12.0\nruby 3.3.0
mise.toml(ネイティブ形式)
[tools]\nnode = "20.11.0"\npython = "3.12.0"

言語固有のバージョンファイル

ツールは以下の言語別ファイルも認識します。

ファイル名対応言語
.nvmrc
Node.js
20.11.0
.node-version
Node.js
20.11.0
.python-version
Python
3.12.0
.ruby-version
Ruby
3.3.0
Gemfile
Ruby
ruby "3.3.0"
.go-version
Go
1.21.0
.java-version
Java
17
.sdkmanrc
Java
java=17.0.2
.crystal-version
Crystal
1.10.0
.exenv-version
Elixir
1.15.0
.yvmrc
Yarn
1.22.19

注記:Node.js はすべてのサポート対象 AI コーディングツールで必須とされるため、明示的に指定しなくても自動的に含まれます。


対応プロバイダー

プロバイダーパッケージコマンド要件設定
codex
@openai/codex
codex --dangerously-bypass-approvals-and-sandbox
なし
~/.codex
に保存
opencode
opencode-ai
opencode
なし
~/.config/opencode/
~/.local/share/opencode/
に保存
copilot
@github/copilot
copilot --allow-all-tools --allow-all-paths --allow-all-urls
gh
CLI 認証済み(
gh auth login
~/.copilot
で管理(
GH_TOKEN
gh
CLI から取得)

動作原理

  1. 設定検出 – 現在のディレクトリ内で
    .tool-versions
    mise.toml
    、および言語固有バージョンファイルを検索。
  2. バージョン解析 – ツール名とバージョンを抽出。
  3. Dockerfile 生成 – Debian 12‑slim ベースに以下を構築:
    • mise
      ランタイムマネージャー
    • 指定されたすべてのツール(指定バージョン)
    • セキュリティ向上のため非 root ユーザー(UID 1000)
  4. イメージビルド – Docker イメージを構築(変更が無ければキャッシュ済みイメージを再利用)。
  5. イメージ命名
    mheap/agent-en-place:<tool1>-<version1>-<tool2>-<version2>-…
    の形式。
  6. コンテナ実行 – 以下をマウントした
    docker run
    コマンドを出力:
    • カレントディレクトリ →
      /workdir
    • プロバイダー設定ディレクトリ(例:
      ~/.copilot
    • 必要な環境変数の設定

高度な使用方法

フラグ説明
--debug
Docker ビルド出力を表示(デフォルトでは非表示)。トラブルシューティングに便利。
--rebuild
既存イメージがあっても強制的に再ビルド。最新ツールバージョンを取得したい場合に使用。
--dockerfile
Dockerfile を生成して表示し、ビルドせずに終了。デバッグやカスタマイズ時に有効。

# opencode のビルド出力を表示
agent-en-place --debug opencode

# copilot 用に強制再ビルド
agent-en-place --rebuild copilot

# codex 用 Dockerfile を確認
agent-en-place --dockerfile codex

# フラグを組み合わせて実行
agent-en-place --debug --rebuild opencode

ライセンス

MIT License

同じ日のほかのニュース

一覧に戻る →

2026/01/19 2:40

ガウス・スプラッティング ― A$AP ロッキー「ヘリコプター」ミュージックビデオ

## Japanese Translation: ## Summary: A$AP Rocky の新しい「Helicopter」ビデオは、ライブアクション撮影におけるブレークスルーを示しています。動的ガウシアン・スプラッティング(dynamic Gaussian splatting)という手法により、カメラ映像が即座にレンダリング可能な体積データへ変換されます。56 台の RGB‑D カメラからなる大規模アレイを使用してチームは 10 TB 超の原始映像と約 30 分間の事前レンダリング済みスプラッティングコンテンツを生成しました。Houdini(シーケンス作業)、OctaneRender(ライティング調整)、Blender(レイアウト・プロキシキャッシュ)を組み合わせることで、セット上で数秒以内にショットのプレビューが可能となり、重いポストプロダクション作業に入る前に迅速なクリエイティブ判断を行うことができました。 これは A$AP Rocky の 2023 年に「Shittin’ Me」で実施した NeRF ベースの放射場(radiance fields)実験を踏襲しています。現在のワークフローは、各テイク後すぐにライブ空間フィードバックとメッシュプレビューを提供することで、動的ガウシアン・スプラッティングの最も高度な実世界利用例の一つです。この手法は、体積キャプチャがリアルなモーションを保持しながら、監督に広範なポストプロダクションの柔軟性を提供できることを示しています。 広く採用されれば、この技術はミュージックビデオ、映画、広告などを変革し、セット上のリソース削減、ワークフロー高速化、アーティストやスタジオにとっての創造的可能性拡大につながるでしょう。

2026/01/19 3:01

Flux 2 Klein 純粋 C 推論

## Japanese Translation: ドキュメントは、テキストから画像および画像から画像へのタスクの両方をサポートする純粋なC実装であるFLUX.2‑klein‑4B画像生成モデルについて説明しています。外部依存関係はC標準ライブラリのみで、HuggingFace から小さな Python スクリプト (`pip install huggingface_hub`) を介して VAE、Transformer、Qwen3‑4B エンコーダ、トークナイザを含む約16 GBの事前学習済み重みをロードします。Apple の Silicon 上では Metal Performance Shaders、Linux/Intel macOS では BLAS(OpenBLAS)によるオプションの高速化が可能で、最大約30倍の速度向上と Apple マシン上で自動的に GPU を使用します。 ライブラリは単純な C API (`flux_load_dir`、`flux_generate`、`flux_img2img` など) を公開しており、ユーザーのプロジェクトへリンクできます。サンプルコードではプログラムから画像を生成または変換する方法が示されています。またコマンドライン利用も可能で、例として `./flux -d flux-klein-model -p "prompt" -o out.png`(テキスト→画像)や `-i input.png` と `-t strength` を付けて画像→画像を実行します。オプションには幅/高さ(64–1024 px、16ピクセル単位)、ステップ数(デフォルト 4)、シード、quiet/verbose フラグが含まれます。 プロンプトのエンコード後、Qwen3‑4B エンコーダは自動的に解放され(約8 GB が解放)拡散中のピークメモリを約16 GB に抑えます。複数のプロンプトが同じエンコーダを再利用でき、再ロードは不要です。サポートされる最大解像度は 1024×1024 ピクセル、最小は 64×64 で、VAE のダウンサンプリングにより 16 の倍数に制限されています。 MIT ライセンスの下で配布されるこのパッケージは、軽量かつ依存関係がないため組み込みシステム、高性能サーバー、クロスプラットフォームアプリケーションに適しています。オープンソースおよび商用プロジェクトの両方で広く採用されることを奨励します。

2026/01/18 17:18

ソーシャル・ファイルシステム