-
-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error while pushing images #404
Comments
The way to debug this is to docker-compose logs for the minio /uwsgi containers and see what the error message(s) are. |
Thank you for the suggestion. But this time logs are not helping me in understanding what is happening: docker compose logs for uwsgi docker compose logs for the minio |
But I think they are? This seems important:
|
Minio is on port 9000 so logically the error (and that message) hints that the server is not correctly starting. Notice toward the bottom the status is Offline. |
If I put MINIO_ROOT_USER and MINIO_ROOT_PASSWORD in the .minio-env file the warning goes away. But the error is still present. Moreover, if I remove MINIO_ACCESS_KEY and MINIO_SECRET_KEY the site does not start because I think uwsgi needs these parameters. So in the end I think MINIO_ACCESS_KEY and MINIO_SECRET_KEY are ok and the warning can be ignored for now. I also think that minio is up and running because I installed mc for logging and trying a push here what is reported: ./mc admin trace -v myminio It seems that for some reasons the upload starts, but then it gets interrupted. |
That’s correct! You’ll need to update the two variables here:
|
These docs might help debug, these variables are new: https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html#envvar.MINIO_ROOT_USER |
I modified the .minio-env file, which now contains only MINIO_ROOT_USER and MINIO_ROOT_PASSWORD Results: the warning message disappeared and the system is up, but still get exactly the same error while pushing the image. I really think the problem is somewhere else... |
Can you please show me the logs for each of minio, uwsgi, and nginx? If minio wasn't running because of those credentials it's likely that was at least part of the problem (or in other words, you wouldn't get a working push in that state). |
Below the logs related to a push attempt. docker compose logs for the minio docker compose logs for the nginx docker compose logs for the uwsgi |
Hi, I changed this line in the config.py file (Before it was 127.0.0.1:9000) and the error changed MINIO_EXTERNAL_SERVER = ( FATAL: Unable to push image to library: Put "http://sregistry.bioinfotiget.it:9000/sregistry/rnaseq/centos7-python3-r4-deg%3Asha256.49bfd3dcac50e3fbcfbb4b535b1924c98ced1fc49a16446bfb4af5ee7da0b08c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20220917%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220917T144406Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host%3Bx-amz-content-sha256&partNumber=1&uploadId=f5e68e33-2b7b-467c-ab13-63b07cb32999&X-Amz-Signature=e1cdbf1296a1a4cd2fe9d4fa0a4b7a096f06e05bfb163eabdca942ce76ea4638": dial tcp 131.175.207.216:9000: i/o timeout Instead of connection refused I have a timeout. Also, have I to change this? What about this? Final questions: Please help me in solving this, I really think I'm close to the solution, but still I don't see how to solve the problem. |
Okay so let's step back a second. There are two mini server URLs, the first (above) is what the external URL should look like. If there is a timeout, you can try testing this locally with ping and various network tools. I would read the mini docs to see what basic interactions with a deployed registry should look like, and verify they work before coming back to sregistry. You can tell that some aspect is working because in the payload you showed me, you got as far as to have an upload id. If I were in your shoes, I'd engage with other minio users and the developer - for example this looks similar to what you are experiencing minio/console#1818 and could have resulted from a new Minio update.
This is the server that the other containers see, essentially internal networking. Try shelling into any container and looking at /etc/hosts. You should be able to ping minio from the inside of the other containers.
This means you aren't using https. When I'm working on this I traditionally start without https, and then when I've confirmed it works I will add SSL and change this or True. You might consider removing ssl temporary while you debug this further because you will eventually need this. It's driving the logic here sregistry/shub/apps/library/views/minio.py Lines 44 to 80 in 49e644b
Yes you should. Check out the tutorial. https://docs.min.io/docs/minio-quickstart-guide.html
I'm doing my best, of course without being able to debug it myself. |
I'm going to start preparing a PR with some of the Minio changes we've discovered in this issue! Hopefully if I can reproduce your issue I can help too. |
okay I've tested the entire thing from a fresh build to login -> push -> pull, and updated the docs accordingly. #405. I did the entire workflow without https and couldn't reproduce your issue (using the new minio) so I think my advice (if you can't get the above working) is to step back and test first without https, and add when you are sure that is working. If you test from my branch it should also be using a newer Python and have the bugs fixed that we chat about, so it might be a good idea too. And a few more checks:
|
I tested the new version of your software, recreating everything from scratch and without using https (for doing this I had to update singularity to 3.10). The problem is still the same. My feeling is that there is a problem with ports. When I try from a browser to connect to http://131.175.207.216:9000 I'm pushed to http://131.175.207.216:33187 which is clearly not available. |
Ah so we actually have been debugging your deployment and not an issue with (the expected) deployment of sregistry. That's a bit out of scope, no? You need to get Minio running on OpenStack first it seems. I think perhaps you should start with that https://github.com/minio/minio/issues?q=openstack. I've never used OpenStack so I can't offer experience, but I agree with you it sounds like you haven't properly deployed a service on your cluster. |
Another strategy is to look at similar services and do what they do, e.g., https://docs.openstack.org/install-guide/environment-sql-database-ubuntu.html. This seems important:
|
Sorry, but this time I don't see the point. Openstack is only used to manage virtual machine. |
Yes but I don't think it's the fault of the docker-compose here, it's something about this custom setup. That's all I'm saying. |
There also appears to be something called "nova" https://www.edureka.co/community/65178/how-can-i-configure-docker-service-inside-openstack. and controlling ingress https://ovh.github.io/cds/hosting/ready-to-run/docker-compose/full-example/ |
Sorry to bother you again...
I'm now trying to push images into sregistry using singularity from another server.
I added the remote and provided the token:
singularity remote list
Cloud Services Endpoints
====================
NAME URI ACTIVE GLOBAL EXCLUSIVE
SylabsCloud cloud.sylabs.io NO YES NO
bioinfotiget sregistry.bioinfotiget.it YES NO NO
Keyservers
====================
URI GLOBAL INSECURE ORDER
https://sregistry.bioinfotiget.it YES NO 1*
* Active cloud services keyserver
...but when I try to push an image I get this error:
singularity push -U centos7-python3-r4-deg.sif library://imerelli/rnaseq/centos7-python3-r4-deg:latest
WARNING: Skipping container verification
0.0b / 1.0GiB [------------------------------------------------------------------------------] 0 % 0.0 b/s 0s
FATAL: Unable to push image to library: Put "http://127.0.0.1:9000/sregistry/rnaseq/centos7-python3-r4-deg%3Asha256.49bfd3dcac50e3fbcfbb4b535b1924c98ced1fc49a16446bfb4af5ee7da0b08c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=newminio%2F20220909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220909T205220Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host%3Bx-amz-content-sha256&partNumber=1&uploadId=2daaf94b-b02f-4518-88c2-269c45b6e467&X-Amz-Signature=9f4d33630bca145689d9b7f433c2fb6b6ac14cb2814c258fb1d9fcde909b60be": dial tcp 127.0.0.1:9000: connect: connection refused
Port 9000 should be open to internet on the sregistry server?
Honestly, I don't think so, because it seems an internal call since it's using 127.0.0.1
Maybe something related to minio server?
I did't change anything in the configuration about this service (should I?)
Any other hint? logs and ports seems ok.
docker compose logs | grep 9000
sregistry-minio-1 | API: http://172.18.0.3:9000 http://127.0.0.1:9000
nmap localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2022-09-10 12:52 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000019s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 992 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
443/tcp open https
631/tcp open ipp
8090/tcp open opsmessaging
9000/tcp open cslistener
The text was updated successfully, but these errors were encountered: