QStashをDockerで動かす!ローカル開発環境の構築手順
QStashをローカル環境で使うためには2つの方法があります。
- Local Tunnel(ローカルトンネル)を使う方法
- qstash-cliを使う方法(Docker環境でのセットアップが可能)
QStashはクラウド環境でのメッセージキューやジョブスケジューリングに便利ですが、開発時にはローカル環境でのテストが不可欠です。本記事では、QStashをローカル環境で利用するための方法を紹介し、特にDockerを活用して簡単にセットアップする方法を詳しく解説します。
Local Tunnel(ローカルトンネル)を使う方法
Local Tunnel - Upstash Documentation
ローカルトンネルを利用すると、QStashのリクエストをローカル環境に転送できます。
トンネル自体は以下のコマンドで実行できます。
$ npx localtunnel --port 3000
ただし、以下のデメリットがあります。
- qstash側でチームを用意する必要がある
curl https://loca.lt/mytunnelpasswordで接続パスワードを入手する必要がある
このため、ローカルトンネルを使うよりもDocker環境を用意して、より手軽にQStashをローカル環境で利用する方法をおすすめします。
package.jsonのnohoistを設定しているとエラーになる?
package.jsonのworkspaceの項目にnohoistをこのように設定しているとエラーが発生しました。
"workspaces": {
"nohoist": [
"@hookform/resolvers"
]
}
TypeError: workspaces config expects an Array
QStashをnpm経由で利用する際には、package.jsonの設定に注意が必要です。
qstash-cliを使う方法(Docker対応)
Local Development - Upstash Documentation
qstash-cliを利用すると、ローカル環境でQStashを手軽にセットアップできます。さらに、Docker環境を活用すれば、手間なくローカル開発環境を構築できます。
qstash-cliをDocker Composeで用意する
Dockerを利用すると、QStashのローカル環境を簡単に構築できます。
まずはcompose.yamlを用意する
以下のように compose.yaml を作成します。
services:
qstash:
image: public.ecr.aws/upstash/qstash:latest
ports:
- '8080:8080'
command: ['qstash', 'dev']
起動する
$ docker compose up -d
Docker Composeを利用することで、QStashの開発環境を素早く立ち上げることができます。
接続先情報について
docker compose logs qstash を実行すると、環境変数の情報が確認できます。
$ docker compose logs qstash
qstash-1 | Upstash QStash development server is running at http://127.0.0.1:8080
qstash-1 |
qstash-1 | A default user has been created for you to authorize your requests.
qstash-1 | QSTASH_TOKEN=eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=
qstash-1 | QSTASH_CURRENT_SIGNING_KEY=sig_68AqXhtPaxeh5wa62VkA8fXkstB2
qstash-1 | QSTASH_NEXT_SIGNING_KEY=sig_4h3F9a3UgeqXE837T57vvaGhzfB9
この情報をもとに、以下のように環境変数を設定すれば、QStashのローカル環境を利用できます。
QSTASH_URL=http://localhost:8080
QSTASH_TOKEN=eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=
QSTASH_CURRENT_SIGNING_KEY=sig_7BsYtwa4XadTddPnoeaFSahZKLHp
QSTASH_NEXT_SIGNING_KEY=sig_7GNgZqCGNXP98pqVyrB5ro8Hg6j9
まとめ
QStashをローカル環境で利用するためには、Local Tunnelを使う方法と、qstash-cliを使う方法があります。特に、Dockerを利用すれば環境構築が簡単になり、開発がスムーズに進みます。
- Local Tunnelを使う場合、セットアップに手間がかかる
- Docker環境を使うと、
docker compose up -dですぐに開発環境を用意できる docker compose logs qstashを使えば、必要な環境変数を取得可能
ローカルでのQStashの利用を検討している方は、ぜひDockerを活用した方法を試してみてください!