exposedev / exposedev/expose

[Bug]: Infinite loading/hang when sharing a local Docker container via Expose client

Open
#468 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
4.6k
Forks
308
PR merge metrics
No merged PRs in 30d

Description

### System architecture

Linux

### PHP Version

_No response_

### Bug description

I am experiencing an issue where the public URL provided by Expose hangs indefinitely in the browser, while the target service is reachable and responding correctly within the same Docker network.

### Environment:
* **Expose Client:** PHP Binary (latest build)
* **Tested OS:** Reproduced on Windows 10 (Docker Desktop with WSL2 backend) and native Ubuntu 24.04.
* **Docker Image:** `php:8.2-cli-alpine`
* **Target Service:** React/TypeScript application running on port 80.
* **Source Files:**
* [Dockerfile](https://github.com/kearisp/wocker-rproxy-plugin/blob/v1.0.13/plugin/expose/Dockerfile)
* [entrypoint.sh](https://github.com/kearisp/wocker-rproxy-plugin/blob/v1.0.13/plugin/expose/bin/entrypoint.sh)

### Expected Behavior:
The Public URL should serve the content from the target container.

### Actual Behavior:
Infinite "Waiting for host..." in the browser.

### Additional Context:
- Running `curl -I http://$CONTAINER:$PORT` from inside the Expose container returns a valid 200 OK response instantly.
- **Docker Setup:** The web application and the Expose client run in two separate containers within the same Docker network. As mentioned, they have full connectivity via container names.
- **Cross-platform check:** The issue is not OS-specific. I have reproduced the exact same behavior on both **Ubuntu 24.04** and **Windows 10**. Since `curl` inside the container works, this confirms the issue isn't basic network connectivity, but likely something in how Expose handles the response stream or headers from the target service.

### Steps to Reproduce:
1. Run a web service in a Docker container (service name defined in `$CONTAINER`).
2. Run the Expose client container using the linked Dockerfile/entrypoint.
3. Access the Public URL.
4. The Expose logs show the request:
`GET / ............................................................ 11:53:14 21 ms`
5. The browser continues to wait for a response indefinitely.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.