The latest version on Docker Hub is 0.1.3: https://hub.docker.com/r/microsoft/vsts-cli/tags/
Here's the page I'm referring to: https://docs.microsoft.com/en-us/cli/vsts/install?view=vsts-cli-latest
@tedchamb Is there a reason we specify a specific docker version tag, rather than 'latest'?
If I may chime in, I pulled 0.1.3 as the Universal Packages piece of the CLI wasn't in 0.1.0.
I can open a separate issue for this, but the artifacttool doesn't appear to install correctly in 0.1.3. Perhaps it's .NET Core and the base is Python Alpine?
@atbagga I agree, we shouldn't be specifying the version in those commands. @wnjenkin, is this something you can update?
@zarenner, can you investigate the artifacttool issue? Let me know if we need to create a new image.
@tedchamb @wnjenkin Is this something I could do for Hacktoberfest? I'm also more than happy to help @zarenner with a new image too!
Here's the message I get in my container:
Universal Packages is currently in preview.
[Errno 2] No such file or directory: '/root/.vsts/cli/tools/artifacttool/ArtifactTool_linux-x64_0.2.74/artifacttool': '/root/.vsts/cli/tools/artifacttool/ArtifactTool_linux-x64_0.2.74/artifacttool'
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/knack/cli.py", line 197, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/local/lib/python3.6/site-packages/knack/invocation.py", line 172, in execute
cmd_result = parsed_args.func(params)
File "/usr/local/lib/python3.6/site-packages/knack/commands.py", line 105, in __call__
return self.handler(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/knack/commands.py", line 203, in _command_handler
result = op(client, **command_args) if client else op(**command_args)
File "/usr/local/lib/python3.6/site-packages/vsts/cli/package/common/universal.py", line 41, in publish_package
return artifact_tool.publish_universal(team_instance, feed, name, version, description, path)
File "/usr/local/lib/python3.6/site-packages/vsts/cli/package/common/artifacttool.py", line 30, in publish_universal
return self.run_artifacttool(team_instance, args, "Publishing")
File "/usr/local/lib/python3.6/site-packages/vsts/cli/package/common/artifacttool.py", line 44, in run_artifacttool
proc = self._tool_invoker.run(command_args, new_env, initial_progress_message, self._process_stderr)
File "/usr/local/lib/python3.6/site-packages/vsts/cli/package/common/external_tool.py", line 68, in run
self.start(command_args, env)
File "/usr/local/lib/python3.6/site-packages/vsts/cli/package/common/external_tool.py", line 38, in start
env=env)
File "/usr/local/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/root/.vsts/cli/tools/artifacttool/ArtifactTool_linux-x64_0.2.74/artifacttool': '/root/.vsts/cli/tools/artifacttool/ArtifactTool_linux-x64_0.2.74/artifacttool'
@geverghe, fyi regarding @rorpage 's offer to help (see above).
Thank you @rorpage for the offer. @zarenner is looking into this.
Absolutely! Sounds great.
Sorry for the delay here. I tried running the existing ArtifactTool with various compat libraries on Alpine with no success.
There's a bunch of stuff needed to get ArtifactTool (which is dotnet-based) officially supported on Alpine:
1 is done, 2 is pending PR, 3 is pending deployment.
edit: updated status
Thanks for reporting the issue. @zarenner would the distro package change you have in #324 at the moment resolve this?
@mitchdenny It's necessary but not quite sufficient. Our service has been able to serve out the alpine edition of ArtifactTool, and we're building for alpine, but we're not currently publishing it. Let's talk with Owen to get it publishing.
I'll re-test and merge #324 in the next day or two, now that we've discussed with the CLI owners that adding the distro package is OK.
Hopefully that should be all that's needed - IIRC there weren't actually additional deps that needed to be added to the docker image, but obviously need to confirm that again.
OK - do we have a bug tracking this internally already?
No, feel free to create (although I'd also love to just get it tied off quickly too :-))
We've flighted the alpine build so hopefully you can test out your PR end to end.
Everything is now working (and has been for a bit, sorry for the lack of update), except that the azure-cli docker image is missing 2 required dependencies: libintl and icu-libs
That is, the following works today:
docker run -it mcr.microsoft.com/azure-cli
az extension add --name azure-devops
apk update
apk add libintl icu-libs
az login
az artifacts universal publish --organization https://dev.azure.com/{organization} --feed "{feed}" --name "the-bin-folder" --version "0.0.1" --path bin
I've filed https://github.com/Azure/azure-cli/issues/9276 to see if we can get these dependencies into the azure-cli image
@zarenner I see the Azure CLI dependency issue that you filed has been fixed and closed.
Is it OK to close the Docker image related issues now?
Yes, with recent azure-cli images this is completely resolved as far as I can tell. Closing.