0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker環境でホストOSのローカルホストへ接続する方法

Posted at

やろうとしたこと

ローカル開発環境でDockerを使用しており、APIの開発を担当することになった。
APIから外部業者のAPIを呼び出すが、外部業者のAPIの提供がまだであったため、動作確認を行うためにホストOSでモックサーバを動かし、ホストOSのローカルホストへ向けてAPIのリクエストを投げて動作確認を行うことが目的。

問題点

外部業者のAPIと仮定して起動したホストOSのモックサーバへのリクエストでエラーが発生した。
Failed to open TCP connection to localhost:8000 (Cannot assign requested address - connect(2) for "localhost" port 8000)
ホストOSからlocalhost:8000へ向けてAPIを叩くと通るので、Docker環境からのみ接続できない状況となっている。

解決までに試したこと

  • 下記2点の状況を踏まえ、トライ&エラーの時間を短縮するためにDocker環境へ入って操作することにした
    • .envへAPIのエンドポイントを定義していた(定義を変更したらコンテナを再立ち上げしていた)
    • 外部業者を想定したAPIの実行でエラーとなるため、Docker環境からホストOSへ向けたAPIだけ実行できればよい
  • Docker環境へ入って状況再確認
    • docker-compose exec {コンテナ内のイメージ名} bashでdocker環境へ入る
    • 対象となるAPIのリクエストを投げて同じエラーとなることを確認、今回はGETSメソッドだったのでオプションは不要
      • curl http:/localhost:8000/:endpont_url/?Code=1234567890 ※これはNGパターン
  • 解決方法へたどり着くまで、外部業者のAPIを想定したモックサーバへ向けてAPIリクエストを投げた

解決方法

周辺情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?