---
title: @deno/sandbox を もっと味わう
tags: 
author: [とらのあなラボ](https://convert.docswell.com/user/toranoana_lab)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PER92D8LJ9.jpg?width=480
description: Deno Deploy上の隔離されたLinux micro VMを安全に操作するためのSDK、@deno/sandboxについて解説。  これは、サンドボックス内でシェルスクリプトやDenoプロセスなどを安全に実行することを可能にします。 さらに、新機能であるブロックストレージ（Volumes）を導入することで、 起動時の依存モジュールのインストールをスキップし、Imagemagickのようなツールも即時使えるようになります。
published: March 13, 26
canonical: https://convert.docswell.com/s/toranoana_lab/KN7MYR-2026-03-13-201605
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PER92D8LJ9.jpg)

@deno/sandbox を
もっと味わう
【エンジニア LTイベント】オタクが追う最新技術 LT 2025年度末
虎の穴ラボ オクタニ
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/P7XQD1L6EX.jpg)

自己紹介
奥谷 一陽
所属：虎の穴ラボ株式会社
仕事：Fantiaの開発 Ruby on Rails、 React
興味：Deno、TypeScript
購読中：数字であそぼ。
X：@okutann88
github：Octo8080X
toranoana.deno 運営の1人
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 3

![Page Image](https://bcdn.docswell.com/page/37K9X2LG7D.jpg)

@deno/sandbox
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJ3W5435J5.jpg)

https://jsr.io/@deno/sandbox
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/8JDKDQ4YEG.jpg)

@deno/sandbox
- Deno Deploy上に隔離された軽量な Linux micro VMをサンドボックスにする
- サンドボックス内で安全に
- shell script
- プロセスの実行
- js アプリ、 REPL
- ファイル操作
ができる。
- この機能の SDKパッケージ
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VEPKXLM278.jpg)

@deno/sandbox
- サンドボックスは、 JS/TSから操作できる Linux micro VM
- SSHアクセス
- Linux micro vmへのワーキングディレクトリへの VSCodeでの参照
などもできる。
- AIが書いたコードの安全な利用
- どんなコードを書いてくるのか？事前設定できない
- ガードレールを引いた中で動かしたい。
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 7

![Page Image](https://bcdn.docswell.com/page/27VVLQ9X7Q.jpg)

https://jsr.io/@deno/sandbox
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5JGLXWZR7L.jpg)

ミニマムな実行
import { Sandbox } from &quot;@deno/sandbox&quot; ;
await using sandbox = await Sandbox .create ();
await sandbox.sh `echo &quot;Hello, world!&quot;` ;
最小の構成として、サンドボックスで echoするだけ
$ deno -- env .\main.ts
deno -- env .\main.ts
✅ Granted env access to &quot;WS_NO_BUFFER_UTIL&quot; .
✅ Granted env access to &quot;DENO_DEPLOY_TOKEN&quot; .
✅ Granted env access to &quot;DENO_SANDBOX_BASE_DOMAIN&quot; .
✅ Granted env access to &quot;DENO_DEPLOY_ENDPOINT&quot; .
✅ Granted env access to &quot;DENO_DEPLOY_CONSOLE_ENDPOINT&quot; .
✅ Granted net access to &quot;ams.sandbox-api.deno.net:443&quot; .
Hello, world!
これだけでローカルマシンではなく、 denodeploy上のLinux micro VM に処理
を移譲させ、結果をもらうことができる
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 9

![Page Image](https://bcdn.docswell.com/page/47QY83LYEP.jpg)

サンドボックス上で Deno プロセスを起動
import { Sandbox } from &quot;@deno/sandbox&quot; ;
await using sandbox = await Sandbox .create ();
任意のコードを
await sandbox. writeTextFile (&quot;hello.ts&quot; , &quot;console.log(&#039;Hello,
Sandbox!&#039;);&quot; );
サンドボックスにファイルとし
const child = await sandbox. spawn (&quot;deno&quot; , {
args: [ &quot;run&quot; , &quot;hello.ts&quot; ],
stdout: &quot;piped&quot; ,
});
// Read the output
for await (const chunk of child.stdout) {
console .log(new TextDecoder ().decode (chunk));
}
$ deno -- env -EN .\any-script-runner1.ts
Hello, Sandbox!
て書き込む
実行する
出力をストリーミングする
組み合わせとして deno add や、deno install もできるので、
外部パッケージの組み合わせも可能。
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KE4W21DZJ1.jpg)

これら踏まえて、ゲームを作る
技術スタック
- Deno
- Fresh
- @deno/sandbox
- babylonJS
https://deno-sandbox-api-test.octo8080x.deno.net/
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L71YMGZDJG.jpg)

「もっと」やる
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 12

![Page Image](https://bcdn.docswell.com/page/G7WG3K98E2.jpg)

ブロックストレージ
- sandbox が使えるブロックストレージ Volumesが機能追加
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4JZLVZ99E3.jpg)

ブロックストレージ
- sandbox が使えるブロックストレージ Volumesが機能追加
- sandboxを起動するときに、事前に用意したストレージを接続し
- ソースコードを都度置く
- 依存モジュールをインストールする
をスキップできる。
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YE6W5ZKDEV.jpg)

ブロックストレージ
- sandbox が使えるブロックストレージ Volumesが機能追加
- sandboxを起動するときに、事前に用意したストレージを接続し
- ソースコードを都度置く
- 依存モジュールをインストールする
をスキップできる。
- さらに、インストールに時間がかかるツールも即時使用可能な形で、
sandboxを起動できる。
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GE5MYWP8E4.jpg)

ブロックストレージ
- sandbox が使えるブロックストレージ Volumesが機能追加
- sandboxを起動するときに、事前に用意したストレージを接続し
- ソースコードを都度置く
- 依存モジュールをインストールする
をスキップできる。
- さらに、インストールに時間がかかるツールも即時使用可能な形で、
sandboxを起動できる。
例えば、 sandboxに「imagemagick」を導入して画像の変換ができる。
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9729GQ6VJR.jpg)

ブロックストレージを使う
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 17

![Page Image](https://bcdn.docswell.com/page/DJY4VW9Q7M.jpg)

ブロックストレージを使う
Deploy
Fresh 🍋
ユーザーのリクエストは Freshで受ける
FreshはSandboxへリクエストを送る
Volumeに置いた Imagemagickを使う
Sandbox
Volume
ソースコード
依存パッケージ群
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 18

![Page Image](https://bcdn.docswell.com/page/V7NYM9L2E8.jpg)

ブロックストレージのセットアップ
ソースコード抜粋
await sandbox.sh`apt-get update &gt; /dev/null 2&gt;&amp;1`.sudo();
tsからlinuxを操作する
await sandbox
imagemagickを導入
ca-certificates curl fontconfig libfreetype6 libexpat1 libuuid1 libharfbuzz0b
.sh`DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends
libglib2.0-0 libgraphite2-3 libfribidi0 libpcre2-8-0 libx11-6 libxext6 libxrender1
libxcb1 libxcb-render0 libxcb-shm0 libxau6 libxdmcp6`.sudo();
await sandbox.sh`curl -fsSL -o /tmp/magick.appimage
https://download.imagemagick.org/ImageMagick/download/binaries/magick`.sudo();
await sandbox.sh`chmod +x /tmp/magick.appimage`.sudo();
await sandbox.sh`sh -c &#039;cd /tmp &amp;&amp; ./magick.appimage --appimage-extract&#039;`.sudo();
await sandbox.sh`mkdir -p /data/imagemagick`.sudo();
await sandbox.sh`cp -a /tmp/squashfs-root/. /data/imagemagick/`.sudo();
https://github.com/Octo8080X/deno-sandbox-imag
emagick/blob/main/libs/sandboxImagemagick.ts
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 19

![Page Image](https://bcdn.docswell.com/page/YJ9PN24D73.jpg)

同様事例 Deno sandbox上で git を使う
https://deno-sandbox-memo.octo8080x.deno.net/
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GJ8DK5Q5JD.jpg)

まとめ
- @deno/sandbox により
Deno Deploy上に隔離された Linux micro VM上で様々な処理ができる。
- volumeを使うことで、起動の高速化などの恩恵を得られる。
- TS/JSをインターフェースとして、
Linuxを操作することでより操作可能な領域が広がった世界観で、
より広範な技術スタックを導入することができる。
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LJLMZYX3ER.jpg)

ありがとうございました
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


