LoginSignup
6
7

More than 5 years have passed since last update.

DockerでGAE開発環境に外部からアクセスするとき注意点

Posted at

OSを再インストールしたので、開発環境がまっさらになってしまいました。
Windows環境なのでRubyとかPythonとか入れるの色々面倒なので、HerokuやGAE向けの開発環境自体をDockerベースで作れんかなと思ってはまったときの注意点

結論から書くとDocker上でGAEを扱うときは

root@..:/# goapp serve --host=0.0.0.0 /app

みたいな感じで

--host=0.0.0.0

をちゃんと指定しましょう。そうしないとDockerコンテナ上以外からアクセスできません。

Dockerおよびboot2docker/docker-machineを使っている場合、
forwardされてもlocalhost:8080になる訳ではなく、0.0.0.0になっています。

$ docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS                    NAMES
26e0e7b4eec5        koduki/dev-docker-gcp   "/bin/bash"         5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp   gloomy_knuth

なので、--hostの指定をしておかないと、下記のようなエラーがでます。

$ curl http://192.168.99.100:8080
curl: (7) Failed to connect to 192.168.99.100 port 8080: Connection refused

ちなみにboot2docker上からはこう

$ docker-machine.exe ssh default
...

docker@default:~$ curl http://localhost:8080
curl: (52) Empty reply from server

なので、"--host=0.0.0.0"を指定すると接続先IPが変わるので下記のように正常なレスポンスになります。

$ curl http://192.168.99.100:8080
Hello, world!

最初ACLやSELinux系を疑ってたのですがGAEを使ったのが昔過ぎて、このオプションの存在を完全に失念してました。
結構、開発モードとプロダクションモードでこの辺の設定がことなるフレームワークは多いので、まず注意するべきポイントですね。

それではHappy Hacking!

6
7
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
6
7