-
-
Notifications
You must be signed in to change notification settings - Fork 27
Run the tests with udocker in GitHub Actions (matrix) #180
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
Run the tests with udocker in GitHub Actions (matrix) #180
Conversation
|
Right now GH Actions has the exact same error I have on my Ubuntu when running the conformance tests with ERROR Got workflow error: Command '['udocker', 'pull', 'docker.io/python:3-slim']' returned non-zero exit status 1.If you try the command locally with the latest release you should get the same error, The only way I found to fix it was by replacing in the workflows the image name, prefixing it with |
|
@kinow what does |
(venv) kinow@ranma:~/Development/python/workspace/cwltool$ udocker --version
Info: using config file: /home/kinow/.udocker/udocker.conf
Info: using curl executable
version: 1.3.1
tarball: https://download.ncg.ingrid.pt/webdav/udocker/udocker-englib-1.2.8.tar.gz https://raw.githubusercontent.com/jorge-lip/udocker-builds/master/tarballs/udocker-englib-1.2.8.tar.gz
tarball_release: 1.2.8
# omitted tokens
(venv) kinow@ranma:~/Development/python/workspace/cwltool$ udocker -D pull docker.io/python:3-slim
Info: using config file: /home/kinow/.udocker/udocker.conf
Info: using curl executable
Info: using curl executable
Info: read buf 1.2.8
Info: get imagerepo: docker.io/python tag: 3-slim
Info: header: {'X-ND-HTTPSTATUS': 'HTTP/1.1 401 Unauthorized', 'X-ND-CURLSTATUS': 0, 'content-type': 'application/json', 'docker-distribution-api-version': 'registry/2.0', 'www-authenticate': 'Bearer realm="https://auth.docker.io/token",service="registry.docker.io"', 'date': 'Sat, 21 May 2022 12:18:17 GMT', 'content-length': '87', 'strict-transport-security': 'max-age=31536000'}
Info: buffer: b'{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}\n'
Info: header: {'X-ND-HTTPSTATUS': 'HTTP/1.1 200 OK', 'X-ND-CURLSTATUS': 0, 'content-type': 'application/json; charset=utf-8', 'date': 'Sat, 21 May 2022 12:18:18 GMT', 'transfer-encoding': 'chunked', 'strict-transport-security': 'max-age=31536000', 'X-ND-HEADERS': []}
Info: buffer: b'{"token":"***","access_token":"***","expires_in":300,"issued_at":"2022-05-21T12:18:18.247276753Z"}\n'
Info: header: {'X-ND-HTTPSTATUS': 'HTTP/1.1 200 OK', 'X-ND-CURLSTATUS': 0, 'content-length': '2', 'content-type': 'application/json', 'docker-distribution-api-version': 'registry/2.0', 'date': 'Sat, 21 May 2022 12:18:19 GMT', 'strict-transport-security': 'max-age=31536000', 'X-ND-HEADERS': ['Authorization: Bearer ***']}
Info: buffer: b'{}'
Info: manifest url https://registry-1.docker.io/v2/python/manifests/3-slim
Info: header: {'X-ND-HTTPSTATUS': 'HTTP/1.1 401 Unauthorized', 'X-ND-CURLSTATUS': 0, 'content-type': 'application/json', 'docker-distribution-api-version': 'registry/2.0', 'www-authenticate': 'Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:python:pull"', 'date': 'Sat, 21 May 2022 12:18:20 GMT', 'content-length': '149', 'strict-transport-security': 'max-age=31536000'}
Info: buffer: b'{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"repository","Class":"","Name":"python","Action":"pull"}]}]}\n'
Info: header: {'X-ND-HTTPSTATUS': 'HTTP/1.1 200 OK', 'X-ND-CURLSTATUS': 0, 'content-type': 'application/json; charset=utf-8', 'date': 'Sat, 21 May 2022 12:18:20 GMT', 'transfer-encoding': 'chunked', 'strict-transport-security': 'max-age=31536000', 'X-ND-HEADERS': []}
Info: buffer: b'{"token":"***","access_token":"***","expires_in":300,"issued_at":"2022-05-21T12:18:20.951289576Z"}\n'
Info: header: {'X-ND-HTTPSTATUS': 'HTTP/1.1 401 Unauthorized', 'X-ND-CURLSTATUS': 0, 'content-type': 'application/json', 'docker-distribution-api-version': 'registry/2.0', 'www-authenticate': 'Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:python:pull",error="insufficient_scope"', 'date': 'Sat, 21 May 2022 12:18:21 GMT', 'content-length': '149', 'strict-transport-security': 'max-age=31536000', 'X-ND-HEADERS': ['Authorization: Bearer ***']}
Info: buffer: b'{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"repository","Class":"","Name":"python","Action":"pull"}]}]}\n'
Error: manifest not found or not authorized
Error: no files downloaded
|
|
@kinow Your |
That's funny. I installed it in my Let me uninstall from the virtual environment and install it some other way. |
|
Hmmm, exact same behavior after installing But I couldn't find a 1.3.1 in that repository. Do you get the same version for both udocker and udocker-englib running |
|
Here are the URLs it tries: https://github.com/indigo-dc/udocker/blob/dcc4972f3abf2aac8de12ce8a0453997d8af7cdc/udocker/config.py#L34 |
|
okay, we are seeing behavior difference between udocker From the earlier errors, I'm guessing we are hitting some API limit; we'll need to use |
|
Upgrading to udocker 1.3.1 I also see that |
|
I opened a new issue over there: indigo-dc/udocker#359 |
Thanks @mr-c ! |
cdb5951 to
469f786
Compare
.github/workflows/cwltool.yml
Outdated
| docker: | ||
| - "" # default, fails if we use docker | ||
| - udocker |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting. Maybe better to build the matrix with options, a string gets used later to set CWLTOOL_OPTIONS? That way we can also use --singularity, for example
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea! I'll update it later, thanks Michael!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done @mr-c. I did a very (really very) quick testing, and I think the issue wasn't fixed on udocker side yet. So probably both jobs will fail. For the default value, docker, we probably want to comment that out or remove that line I think? Since that won't work on GH Actions as it's already running with Docker (unless we want to try that docker on docker approach). Cheers.
42d1f01 to
bdbd3ea
Compare
Co-authored-by: Michael R. Crusoe <[email protected]>
Co-authored-by: Michael R. Crusoe <[email protected]>
d51b475 to
091d489
Compare
091d489 to
11a6006
Compare
|
Getting closer with the udocker 1.3.5 release; we also need common-workflow-language/cwltool#1761 |
✅ Deploy Preview for cwl-v1-2-dev ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Closes common-workflow-language/cwltool#782
Running locally, I get an error that
udockeris not able to pull thepython:3-slimimage. After some debugging, I think it's because it's missing the username in the image.docker pull python:3-slimis smart to translate that intodocker pull library/python:3-slim. Butudockerdoesn't prepend the defaultlibrary(user for curated images), and fails to pull it locally for me.If I replace the
dockerPullwithlibrary/python:3-slim, it works, but some tests fail, e.g.I might be doing something wrong, as I also get errors with
--user-space-docker-cmd=docker.-Bruno