[20.10 backport] dockerd-rootless-setuptool.sh: create CLI context "rootless"
| ... | ... |
@@ -23,6 +23,7 @@ ERROR() {
|
| 23 | 23 |
# constants |
| 24 | 24 |
DOCKERD_ROOTLESS_SH="dockerd-rootless.sh" |
| 25 | 25 |
SYSTEMD_UNIT="docker.service" |
| 26 |
+CLI_CONTEXT="rootless" |
|
| 26 | 27 |
|
| 27 | 28 |
# CLI opt: --force |
| 28 | 29 |
OPT_FORCE="" |
| ... | ... |
@@ -350,6 +351,23 @@ install_nonsystemd() {
|
| 350 | 350 |
echo |
| 351 | 351 |
} |
| 352 | 352 |
|
| 353 |
+cli_ctx_exists() {
|
|
| 354 |
+ name="$1" |
|
| 355 |
+ "${BIN}/docker" context inspect -f "{{.Name}}" "${name}" > /dev/null 2>&1
|
|
| 356 |
+} |
|
| 357 |
+ |
|
| 358 |
+cli_ctx_create() {
|
|
| 359 |
+ name="$1" |
|
| 360 |
+ host="$2" |
|
| 361 |
+ description="$3" |
|
| 362 |
+ "${BIN}/docker" context create "${name}" --docker "host=${host}" --description "${description}" > /dev/null
|
|
| 363 |
+} |
|
| 364 |
+ |
|
| 365 |
+cli_ctx_rm() {
|
|
| 366 |
+ name="$1" |
|
| 367 |
+ "${BIN}/docker" context rm -f "${name}" > /dev/null
|
|
| 368 |
+} |
|
| 369 |
+ |
|
| 353 | 370 |
# CLI subcommand: "install" |
| 354 | 371 |
cmd_entrypoint_install() {
|
| 355 | 372 |
# requirements are already checked in init() |
| ... | ... |
@@ -359,6 +377,14 @@ cmd_entrypoint_install() {
|
| 359 | 359 |
install_systemd |
| 360 | 360 |
fi |
| 361 | 361 |
|
| 362 |
+ if cli_ctx_exists "${CLI_CONTEXT}"; then
|
|
| 363 |
+ INFO "CLI context \"${CLI_CONTEXT}\" already exists"
|
|
| 364 |
+ else |
|
| 365 |
+ INFO "Creating CLI context \"${CLI_CONTEXT}\""
|
|
| 366 |
+ cli_ctx_create "${CLI_CONTEXT}" "unix://${XDG_RUNTIME_DIR}/docker.sock" "Rootless mode"
|
|
| 367 |
+ fi |
|
| 368 |
+ |
|
| 369 |
+ echo |
|
| 362 | 370 |
INFO "Make sure the following environment variables are set (or add them to ~/.bashrc):" |
| 363 | 371 |
echo |
| 364 | 372 |
if [ -n "$XDG_RUNTIME_DIR_CREATED" ]; then |
| ... | ... |
@@ -390,6 +416,11 @@ cmd_entrypoint_uninstall() {
|
| 390 | 390 |
INFO "Uninstalled ${SYSTEMD_UNIT}"
|
| 391 | 391 |
fi |
| 392 | 392 |
|
| 393 |
+ if cli_ctx_exists "${CLI_CONTEXT}"; then
|
|
| 394 |
+ cli_ctx_rm "${CLI_CONTEXT}"
|
|
| 395 |
+ INFO "Deleted CLI context \"${CLI_CONTEXT}\""
|
|
| 396 |
+ fi |
|
| 397 |
+ |
|
| 393 | 398 |
INFO "This uninstallation tool does NOT remove Docker binaries and data." |
| 394 | 399 |
INFO "To remove data, run: \`$BIN/rootlesskit rm -rf $HOME/.local/share/docker\`" |
| 395 | 400 |
} |