EvalAI push error or am I just a noob with docker?

Hello, I’m trying to push my docker image for submission using this command.
evalai push splid-submission:latest --phase mit-warmup-2164
and it is erroring out like this:
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/requests/adapters.py”, line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: (‘Connection aborted.’, FileNotFoundError(2, ‘No such file or directory’))

I am using docker for the very first time and might have missed something really obvious can anyone help ?

More context:
Built my submission using this command:
docker build -t splid-submission .

Used ml_python baseline notebook to train the model, copied trained model files inside ml_python folder and then I ran the above build command. Built successfully but can’t seem to push. Any help would be appreciated.

Can you open the docker application and check if the image with the corresponding tag (“latest”) exists?

Thanks for your reply @DavidB , Yes I do have an image with “latest” tag

According to the competition website, the warmup phase endet yesterday (18/12/23). Maybe it’s related to that?

Yes, it’s true but I don’t understand why would it give that specific error(file not found error). I tried changing the argument from ‘warm-up’ to ‘competition’ dataset but still the same error. Have you made a submission ? I’m on an macOS btw

You cannot push images to the warmp-up-phase anymore, you have to push to competition phase. Anyway, if that was the error you would see a different message from the EvalAI CLI.

Can you run your docker container locally?

Thanks for your reply @victorrf , I am able to run my docker container locally.

Then it must be something related to docker when pushing images…can you push the image to a registry (e.g. dockerHub) with the docker push command?

Thanks for your suggestion @victorrf, I tried pushing using the docker push command and it worked. But the evalai push still doesn’t work. Any other suggestion would be really appreciated.

Do you have the same error as before?

Yes. The same error. I’m putting the whole stack trace here:
`(base) nikhilsingh@Nikhils-MacBook-Pro ml_python % evalai push splid-submission:latest --phase mit-competition-2164
Traceback (most recent call last):
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 699, in urlopen
httplib_response = self._make_request(
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 394, in _make_request
conn.request(method, url, **httplib_request_kw)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1253, in request
self._send_request(method, url, body, headers, encode_chunked)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1299, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1248, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1008, in _send_output
self.send(msg)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 948, in send
self.connect()
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/transport/unixconn.py”, line 42, in connect
sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/requests/adapters.py”, line 439, in send
resp = conn.urlopen(
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 755, in urlopen
retries = retries.increment(
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/util/retry.py”, line 532, in increment
raise six.reraise(type(error), error, _stacktrace)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/packages/six.py”, line 769, in reraise
raise value.with_traceback(tb)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 699, in urlopen
httplib_response = self._make_request(
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 394, in _make_request
conn.request(method, url, **httplib_request_kw)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1253, in request
self._send_request(method, url, body, headers, encode_chunked)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1299, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1248, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 1008, in _send_output
self.send(msg)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/http/client.py”, line 948, in send
self.connect()
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/transport/unixconn.py”, line 42, in connect
sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: (‘Connection aborted.’, FileNotFoundError(2, ‘No such file or directory’))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/Users/nikhilsingh/miniconda3/bin/evalai”, line 8, in
sys.exit(main())
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/evalai/submissions.py”, line 110, in push
docker_image = docker_client.images.get(image)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/models/images.py”, line 312, in get
return self.prepare_model(self.client.api.inspect_image(name))
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/utils/decorators.py”, line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/api/image.py”, line 245, in inspect_image
self._get(self._url(“/images/{0}/json”, image)), True
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/utils/decorators.py”, line 46, in inner
return f(self, *args, **kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/docker/api/client.py”, line 215, in _get
return self.get(url, **self._set_request_timeout(kwargs))
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/requests/sessions.py”, line 555, in get
return self.request(‘GET’, url, **kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/requests/sessions.py”, line 542, in request
resp = self.send(prep, **send_kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/requests/sessions.py”, line 655, in send
r = adapter.send(request, **kwargs)
File “/Users/nikhilsingh/miniconda3/lib/python3.9/site-packages/requests/adapters.py”, line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: (‘Connection aborted.’, FileNotFoundError(2, ‘No such file or directory’))`

what version of docker do you have?

Hey @victorrf , I’m using the most recent version of docker. (4.25.2)

docker --version
returns:
Docker version 24.0.6, build ed223bc

It seems to me that the issue must be in the docker python sdk used by evalai-cli. is Can you try installing the latest git version of the package?

pip install git+https://github.com/Cloud-CV/evalai-cli.git

Thanks for your reply @victorrf , I tried running the above command and got the following output.
Collecting git+https://github.com/Cloud-CV/evalai-cli.git Cloning https://github.com/Cloud-CV/evalai-cli.git to /private/var/folders/59/_1c3yl6n5l7flfls1wpx128c0000gn/T/pip-req-build-qx113a21 Running command git clone -q https://github.com/Cloud-CV/evalai-cli.git /private/var/folders/59/_1c3yl6n5l7flfls1wpx128c0000gn/T/pip-req-build-qx113a21 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun WARNING: Discarding git+https://github.com/Cloud-CV/evalai-cli.git. Command errored out with exit status 1: git clone -q https://github.com/Cloud-CV/evalai-cli.git /private/var/folders/59/_1c3yl6n5l7flfls1wpx128c0000gn/T/pip-req-build-qx113a21 Check the logs for full command output. ERROR: Command errored out with exit status 1: git clone -q https://github.com/Cloud-CV/evalai-cli.git /private/var/folders/59/_1c3yl6n5l7flfls1wpx128c0000gn/T/pip-req-build-qx113a21 Check the logs for full command output.
Now, I too think the problem arises from the version of evalai-cli. Any solutions to this?

It seems that the Xcode command line tools are either missing or uninstalled. Can you make sure you have them installed and updated?

That worked! It installed the latest version of evalai. But after I ran the push command. It still gave me the same error. :confused:

Can you tell me the rest of your environment? OS version, Python version, etc.

I’ll try to reproduce the issue on a Mac (I’m on Ubuntu right now)

Sure.
MacOS: 14.0
Python Version: Python 3.9.5

More information:
Here’s the folder I ran the docker build -t splid-submission over. ml_python - Google Drive
After running the build command, I am running this evalai push splid-submission:latest --phase mit-competition-2164 command to push and getting the error.
Thanks a lot and let me know if you need some more information to reproduce the error.

I just tried on macOS 12.4 with Python 3.9 and it worked fine. Can you try a different image? For example, build the other baseline solution provided, the one on the heuristic_python folder.