ローカルDocker Compose環境でHTTPS接続するならngrokが便利

外部API連携等で、ローカルDocker環境でもSSLが使いたい場合がある。
そんな時はngrokが便利だった。

ngrokはローカルホストを外部に公開できる。
SSLも使える。

ngrokアカウント作成

使用を開始するには、まずngrokのWebサイトでアカウントを作成する。

ログインしたらYour Authtokenのページで自分のAuthtokenをコピーする。

Your Authtoken

Docker Compose設定

以下、Laravel Sail使用時のdocker-compose.yml設定例。

laravel.testがLaravelアプリケーションのサービス

services:
    ngrok:
        image: ngrok/ngrok:latest
        environment:
            NGROK_AUTHTOKEN: '${NGROK_AUTHTOKEN}'
        command: 'http laravel.test:80'
        ports:
            - 4040:4040
        networks:
            - sail
        depends_on:
            - laravel.test

今回Authtokenは.envで設定する。

NGROK_AUTHTOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

使い方

普段通りDocker Compose(Laravel Sail)を起動したら、http://localhost:4040にアクセスする。
トンネルURLが表示されるので、クリックするとngrok経由でサイトを表示できる。

No requests to display yet 
To get started, make a request to one of your tunnel URLs

[追記] セキュリティ対策

ランダムなURLが発行されるので、誰かが間違えてアクセスする可能性はほとんどないと思うが、一応URLを知っていれば外部からアクセスできるので、認証があった方が安心だ。

Basic認証でよければ、コマンドに--basic-authオプションを追加すれば簡単に設定できる。

services:
    ngrok:
        image: ngrok/ngrok:latest
        environment:
            NGROK_AUTHTOKEN: '${NGROK_AUTHTOKEN}'
        command: 'http --basic-auth="${NGROK_USERNAME}:${NGROK_PASSWORD}" laravel.test:80'
        ports:
            - 4040:4040
        networks:
            - sail
        depends_on:
            - laravel.test

.envでユーザー名とパスワードを設定

NGROK_USERNAME=username
NGROK_PASSWORD=password

参考

関連記事

コメント

この記事へのコメントはありません。

TOP