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?

【Traefik】docker compose で 404 page not found が一時的に出る

Last updated at Posted at 2023-04-09

docker composeリバースプロキシとして Traefik を通して他のコンテナにアクセスすると "404 page not found" が返ってくるが、しばらくすると表示される

しかし、リバースプロキシに Nginx を通したり、ターゲットのコンテナのポートを公開して直接アクセスすると即座に正常に表示されます。つまりターゲットのコンテナ自体は動いているのです。

TL; DR (今北産業)

  1. Traefik は、ターゲットとなるコンテナが "HEALTHCHECK" を有効にしている場合、コンテナの health ステータスが healthy にならないとリクエストを転送しない

  2. docker compose pshealth ステータスを確認し、health: starting の間は待たないといけない

  3. HEALTHCHECK--interval=5m に設定していた場合の例

    $ # 起動直後の確認 (STATUS が "health: starting" であることに注目)
    $ docker compose ps
    NAME                    IMAGE               COMMAND                  SERVICE             CREATED             STATUS                             PORTS
    hello-world-myapp       hello-world-myapp   "/usr/bin/mywebapp"      myapp               26 seconds ago      Up 25 seconds (health: starting)   80/tcp
    hello-world-traefik     traefik:latest      "/entrypoint.sh --lo…"   traefik             26 seconds ago      Up 25 seconds                      0.0.0.0:9090->80/tcp, :::9090->80/tcp
    
    $ curl localhost:9090
    404 page not found
    
    $ # 5分スリープさせてから確認 (STATUS が "healthy" であることに注目)
    $ sleep 5m; docker compose ps
    NAME                    IMAGE               COMMAND                  SERVICE             CREATED             STATUS                   PORTS
    hello-world-myapp       hello-world-myapp   "/usr/bin/mywebapp"      myapp               8 minutes ago       Up 8 minutes (healthy)   80/tcp
    hello-world-traefik     traefik:latest      "/entrypoint.sh --lo…"   traefik             8 minutes ago       Up 8 minutes             0.0.0.0:9090->80/tcp, :::9090->80/tcp
    
    $ curl localhost:9090
    Hello from host: 76c1251bd910
    

動作環境

  • macOS v12.6.3 (Monterey)
    • Docker v20.10.23 (Desktop v4.17.0)
    • Docker Compose v2.15.1
  • Alpine Linux v3.17.3
    • Docker v20.10.24
    • Docker Compose v2.15.1
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?