README: restore iptables as primary DNS fix with isolation clarification
iptables fix is simpler (one command, no 13 GB download) and does not affect container isolation — adds clarifying note so users understand it only restores Docker's default outbound DNS behaviour. Docker helper container kept as fallback option. https://claude.ai/code/session_01WVDg7amsy1TTtxvpku7bcM
This commit is contained in:
@@ -210,7 +210,19 @@ If Docker created `./data/` as root and you can't write there without `sudo`, yo
|
|||||||
|
|
||||||
**AI models not downloading (container DNS blocked)**
|
**AI models not downloading (container DNS blocked)**
|
||||||
|
|
||||||
If the container can't reach HuggingFace (`Errno -3` in logs), use a lightweight Docker helper container to download the models on your behalf — no host Python packages required. The files land in `./data/hf_cache/` which is bind-mounted into the GPU container.
|
If the container can't reach HuggingFace (`Errno -3` in logs), your host firewall is blocking outbound DNS queries from the Docker bridge. The fix below restores Docker's default behaviour — it does **not** affect container isolation (filesystem, network namespace, PID namespace all remain separate):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo iptables -I DOCKER-USER -p udp --dport 53 -j ACCEPT
|
||||||
|
docker compose -f docker-compose.gpu.yml restart
|
||||||
|
```
|
||||||
|
|
||||||
|
The container will now resolve hostnames and download the models automatically (~13 GB on first run, then cached). Watch progress:
|
||||||
|
```bash
|
||||||
|
docker compose -f docker-compose.gpu.yml logs -f | grep -E "local_gpu|Cached|failed"
|
||||||
|
```
|
||||||
|
|
||||||
|
**If you can't run the iptables command**, download with a Docker helper container instead (no host Python needed):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Inpainting model (~6.5 GB) — needed for AI Edit, Make less symmetrical, etc.
|
# Inpainting model (~6.5 GB) — needed for AI Edit, Make less symmetrical, etc.
|
||||||
@@ -230,15 +242,7 @@ docker run --rm \
|
|||||||
--exclude '*.msgpack' 'flax_*' 'tf_*'"
|
--exclude '*.msgpack' 'flax_*' 'tf_*'"
|
||||||
```
|
```
|
||||||
|
|
||||||
Once both downloads finish, restart the container:
|
Then restart: `docker compose -f docker-compose.gpu.yml restart`
|
||||||
```bash
|
|
||||||
docker compose -f docker-compose.gpu.yml restart
|
|
||||||
```
|
|
||||||
|
|
||||||
The first AI Edit request loads from local disk (10–30 s, not a download). Verify in logs:
|
|
||||||
```bash
|
|
||||||
docker compose -f docker-compose.gpu.yml logs -f | grep -E "local_gpu|Cached|failed"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Out of VRAM during generation**
|
**Out of VRAM during generation**
|
||||||
- Reduce `LOCAL_GPU_MAX_PIPELINES=1` in `.env` (default 2)
|
- Reduce `LOCAL_GPU_MAX_PIPELINES=1` in `.env` (default 2)
|
||||||
|
|||||||
Reference in New Issue
Block a user