So I’m currently trying to set up an instance, and I’m unable to upload pictures. The following toaster appears: https://imgur.com/d0MUhUb
And in the logs I see this:
2023-06-25T10:48:11.127198782Z 2023-06-25T10:48:11.127080Z WARN lemmy_server::root_span_builder: Request error: error sending request for url (http://localhost:8080/image): error trying to connect: tcp connect error: Address not available (os error 99)
2023-06-25T10:48:11.127262799Z Reqwest(reqwest::Error { kind: Request, url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(8080), path: "/image", query: None, fragment: None }, source: hyper::Error(Connect, ConnectError("tcp connect error", Os { code: 99, kind: AddrNotAvailable, message: "Address not available" })) })
I have a pictrs container up, and set the following options in lemmy.hjson:
pictrs_config: {
url: "http://pictrs:8080"
api_key: "apikey"
}
Also tried it with pictrs_url: "http://pictrs:8080"
(as described here), but that didn’t help either.
Why is lemmy trying to access localhost:8080 rather than pictrs:8080?
Edit: This has been resolved, thanks to @slashzero@hackbox.social: https://lemmy.ml/comment/948928
Yeah no, DNS works in the containers:
dot@deepthought:~# docker exec -it lemmy-lemmy-1 ping pictrs PING pictrs (192.168.7.2): 56 data bytes 64 bytes from 192.168.7.2: seq=0 ttl=64 time=0.079 ms
However, your hunch did actually turn out to be correct in that there’s still a networking issue: I opened a port for pictrs and hit the API with postman, and noticed it would show up in the pictrs logs which were empty before. So I changed the
url
to the host’s IP and the open port, and now it works. :)lemmy.hjson:
pictrs: { url: "http://192.168.123.10:48080" api_key: "apikey" }
docker-compose.yaml:
pictrs: ... ports: - "48080:8080"
Oh, good idea! Whatever works for you. I spent several hours yesterday trying all sorts of networking hacks to resolve the issue on my instance. I eventually found a combination that worked for me.
The concern here is we are all solving this issue in slightly different ways on our self hosted instances. Eventually, I hope the lemmy dev team releases 0.18.1 fixing all these issues for good.