在基于 Docker 的 Alpine 映像中安装 Sdkman

Install Sdkman in an Alpine based Docker Image

我需要在基于 Alpine 的 docker 映像中安装 Sdkman,但问题是默认 shell 不是 Bash。然后命令:

source "$HOME/.sdkman/bin/sdkman-init.sh"

以失败告终:

/bin/sh: /root/.sdkman/bin/sdkman-init.sh: line 40: SDKMAN_PLATFORM+=64: not found 

您需要将 SDKMAN 的安装和 运行 初始化脚本分成两个 运行 块,例如

RUN apk add bash curl git zip && \
  curl -s "https://get.sdkman.io" | bash
RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk version"

来源:https://e.printstacktrace.blog/using-sdkman-as-a-docker-image-for-jenkins-pipeline-a-step-by-step-guide/