Denoを使うと、TypeScriptをコンパイルせずに実行できます。これをDockerコンテナ上で実行し、DenoもインストールすることなくTypeScriptを動かしてみましょう。
環境
- Debian version 10.9 (ChromeOS 89.0 Chrostini Linux)
- Docker 20.10.6
- deno 1.9.2
- v8 9.1.269.5
- typescript 4.2.2
- Visual Studio Code 1.55.2
構築
Dockerfile,docker-compose.ymlを配置してコンテナを立ち上げVSCode Remote Containerでアタッチするだけです。
Dockerfile
FROM debian:stable-slim
WORKDIR /app
RUN apt-get update && apt-get install -y \
curl \
zip \
unzip \
git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://deno.land/x/install/install.sh | sh
ENV DENO_INSTALL="/root/.deno"
ENV PATH="$DENO_INSTALL/bin:$PATH"
docker-compose.yml
version: '3'
services:
app:
build: .
volumes:
- .:/app
$ echo 'console.log("Hello, world")' > main.ts
のように適当なTypeScriptファイルを作って、$ docker-compose build
して$ docker-compose run --rm app deno run main.ts
して動作したら成功です。
VS Codeの設定
vscode-deno拡張機能をインストールして下記設定で有効にする必要があります。VS CodeはデフォルトでTypeScriptに対応しているのでそれなりに動いてくれるのですが、エディタ上でnoImplictAny
が効かなかったりしました。
.vscode/settings.json
{
"deno.enable": true
}