I’m trying to spin up an instance on a local VM for my own testing so using the docker install.
I’ve reaching the point the instructions that say to run docker-compose up -d
.
When I run that as my normal non-root user, I get a permission denied error.
$ docker-compose up -d
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 394, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/lib/python3.10/http/client.py", line 1282, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.10/http/client.py", line 1328, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.10/http/client.py", line 1277, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.10/http/client.py", line 1037, in _send_output
self.send(msg)
File "/usr/lib/python3.10/http/client.py", line 975, in send
self.connect()
File "/usr/lib/python3/dist-packages/docker/transport/unixconn.py", line 30, in connect
sock.connect(self.unix_socket)
PermissionError: [Errno 13] Permission denied
The first time I ran it with sudo
, it downloaded a bunch of stuff (but to where I have no clue), and then gave the following error. Every subsequent run it skips the downloading (presumably because it already has all that), and goes straight to the error.
$ sudo docker-compose up -d
Creating network "lemmy_lemmyinternal" with driver "bridge"
Creating network "lemmy_lemmyexternalproxy" with the default driver
Pulling pictrs (asonix/pictrs:0.4.0-beta.19)...
0.4.0-beta.19: Pulling from asonix/pictrs
ef5531b6e74e: Pull complete
1f0396fae2e3: Pull complete
9115eac87d97: Pull complete
e38b3eb392e4: Pull complete
4d5295668c45: Pull complete
Digest: sha256:480d36cd97e5e98e7c76c7d226dc009bd5bb9fa065fdc1f4207699f16e8cc61e
Status: Downloaded newer image for asonix/pictrs:0.4.0-beta.19
Pulling postgres (postgres:15-alpine)...
15-alpine: Pulling from library/postgres
31e352740f53: Pull complete
d7c8ef16402f: Pull complete
36cb57831f52: Pull complete
a120e2610875: Pull complete
64f9e9ad23bd: Pull complete
dd2a4281faaa: Pull complete
daef310ca2c6: Pull complete
c47c060e762a: Pull complete
Digest: sha256:48d8422c6ae570a5bda52f07548b8e65dd055ac0b661f25b44b20e8cff2f75f0
Status: Downloaded newer image for postgres:15-alpine
Building lemmy
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/ME/docker: no such file or directory
It’s clearly complaining about a missing file or folder in my home dir, but I have no idea what’s supposed to be in that file/folder and it’s not mentioned in the instructions. Suggestions?
ETA: Just to try something, I did a mkdir ~/docker
and then touch ~/docker/Dockerfile
, and now I get…
$ sudo docker-compose up -d
Building lemmy
Sending build context to Docker daemon 111.6MB
Error response from daemon: the Dockerfile (docker/Dockerfile) cannot be empty
ERROR: Service 'lemmy' failed to build : Build failed
Again. I have no idea what’s supposed to be in that file. It’s not mentioned in the instructions.
I think I had that same error regarding numbers and strings: if you’re using that docker-compose file you need to put “” quotation marks around the number 4 in line 7, so it reads
max-file: “4”
You’re probably better off using the docker-compose.yml from the Ansible repo as your starting point and working from there, the one in the main repo is a bit of a mess as it’s being actively worked on at the minute.
Also, whichever configuration files you use make sure to check that the ports are the same in all of them! I don’t know if it’s fixed now, but when I was setting mine up the docker-compose.yml and the nginx.conf file given in the join-docker instructions had different port numbers for the same service (I think one still used 1234 for lemmy-ui and one had been changed to 1236), so you still wouldn’t be able to connect to it even if you got it running.