php エディター Yuzai は、docker-compose の使用時に多くの開発者が共通の問題、つまり Go REST API にアクセスできないことに遭遇したことを発見しました。この問題により、開発者は API を適切にテストおよびデバッグできなくなる可能性があります。この記事では、開発者が docker-compose を使用して Go REST API にアクセスし、開発効率を向上できるように、この問題を解決するためのいくつかの方法とテクニックを紹介します。
gin gonicとmysqlとphpmyadminとdockerを使って簡単なgorest APIを実行しようとしています。
phpmyadmin は正常に実行されていますが、Go API にアクセスしようとすると、次のエラー メッセージが表示されます: localhost はデータを送信しませんでした。 err_empty_response
Docker を使用せずに main.go
ファイルを実行すると、すべてが期待どおりに動作します
これは私の docker-compose
ファイルです
これは私の dockerfile
:
これが私が使用する main.go
ファイル (現在):
http://localhost:9090
にアクセスすると、phpmyadmin が読み込まれています (まさに私が期待しているものです)
http://localhost:8080
にアクセスすると、次のエラー メッセージが表示されます: localhost はデータを送信しませんでした。 err_empty_response
これには docker-compose up --build
を実行します。
明らかに何か間違ったことをしているのですが、何が間違っているのかわかりません。
問題は、Go コードと、API のリスニング ホストを指定する方法にあるようです。私の main.go
ファイルでは現在ホストを "localhost:8080" に設定していますが、Docker コンテナー内でアプリケーションを実行するときは "0.0.0.0:8080" でリッスンする必要があります。これにより、コンテナがすべてのネットワーク インターフェイスにバインドできるようになります。
この問題を解決するには、main.go
ファイルの router.run
行を次のように変更する必要がありました。
リーリー
http://localhost:8080 にある gorest API にアクセスできるようになります。
localhost は、ホストではなくコンテナ自体を指します。 「0.0.0.0」を使用することで、使用可能なすべてのネットワーク インターフェイスにバインドするようにコンテナーに指示し、ホストから API にアクセスできるようにします。
以上がdocker-compose を使用して Go REST API にアクセスできないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。