The CLI can be used in Docker without any problem.
In order to use it you must mount the scaleway configuration file:
docker run -it --rm -v $HOME/.config/scw:/root/.config/scw scaleway/cli:v2.26.0
If you want to use scw
instead of docker run
you can add the following in your ~/.bashrc
:
scw() {
docker run -it --rm -v $HOME/.config/scw:/root/.config/scw scaleway/cli:v2.26.0 "$@"
}
export -f scw
Or if you use ZSH, add the following in your ~/.zshrc
:
scw() {
docker run -it --rm -v $HOME/.config/scw:/root/.config/scw scaleway/cli:v2.26.0 $@
}
In order to use your ssh-key you must mount your .ssh folder
docker run -it --rm -v $HOME/.config/scw:/root/.config/scw -v $HOME/.ssh:/root/.ssh scaleway/cli:v2.26.0 $@
You can then ensure that your ssh key is present in your Scaleway account
scw iam ssh-key init
You can still use autocompletion while running the CLI in Docker, you just need to modify script generated by the CLI.
For instance, scw autocomplete script shell=bash
will return:
_scw() {
_get_comp_words_by_ref -n = cword words
output=$(scw autocomplete complete bash -- "$COMP_LINE" "$cword" "${words[@]}")
COMPREPLY=($output)
# apply compopt option and ignore failure for older bash versions
[[ $COMPREPLY == *= ]] && compopt -o nospace 2> /dev/null || true
return
}
complete -F _scw scw
And in your ~/.bashrc
you can add:
scw() {
docker run -it --rm -v $HOME/.config/scw:/root/.config/scw scaleway/cli:v2.26.0 "$@"
}
export -f scw
_scw() {
_get_comp_words_by_ref -n = cword words
output=$(docker run -i --rm -v $HOME/.config/scw:/root/.config/scw scaleway/cli:v2.26.0 autocomplete complete bash -- "$COMP_LINE" "$cword" "${words[@]}")
COMPREPLY=($output)
# apply compopt option and ignore failure for older bash versions
[[ $COMPREPLY == *= ]] && compopt -o nospace 2> /dev/null || true
return
}
complete -F _scw scw
The trick is to remove the -t
when using docker inside the completion function.
If running with Podman and SELinux in enforcing mode, one must use the :Z option when mounting the configuration file.
For instance:
podman run -it --rm -v $HOME/.config/scw:/root/.config/scw:Z scaleway/cli:v2.26.0