Title here
Summary here
このチュートリアルでは、マルチサービスプロジェクトをゼロから作成し、rojiを通じてアクセスする方法を説明します。
Webフロントエンドとバックエンドの2つのサービスからなるプロジェクトを作成します:
mkdir my-project && cd my-projectdocker-compose.yml を作成:
services:
web:
image: nginx:alpine
expose:
- "80"
networks:
- roji
api:
image: node:alpine
working_dir: /app
command: ["node", "server.js"]
expose:
- "3000"
networks:
- roji
networks:
roji:
external: truedocker compose up -dサービスが利用可能になります:
https://web.dev.localhost — nginxフロントエンドhttps://api.dev.localhost — Node.js APIデフォルトの {service}.dev.localhost の代わりにカスタムホスト名を設定:
services:
api:
image: my-api
labels:
- "roji.host=api.dev.localhost"
networks:
- rojiパスプレフィックスを使って同じホスト名で複数サービスをルーティング:
services:
frontend:
image: nginx:alpine
labels:
- "roji.host=myapp.dev.localhost"
networks:
- roji
api:
image: my-api
labels:
- "roji.host=myapp.dev.localhost"
- "roji.path=/api"
networks:
- rojihttps://myapp.dev.localhost がフロントエンド、https://myapp.dev.localhost/api/* がAPIにルーティングされます。
コンテナが複数ポートを公開している場合、rojiがプロキシするポートを指定:
services:
app:
expose:
- "3000"
- "9229" # デバッガー
labels:
- "roji.port=3000"
networks:
- rojihttps://roji.dev.localhost を開くと、すべてのルート、リクエストログ、プロジェクト操作が確認できます。