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

mar*_*bfm 1 docker sdkman alpine-linux

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

source "$HOME/.sdkman/bin/sdkman-init.sh"
Run Code Online (Sandbox Code Playgroud)

以失败告终:

/bin/sh: /root/.sdkman/bin/sdkman-init.sh: line 40: SDKMAN_PLATFORM+=64: not found 
Run Code Online (Sandbox Code Playgroud)

小智 5

您需要拆分 SDKMAN 的安装并将 init 脚本运行到两个 RUN 块中,例如

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"
Run Code Online (Sandbox Code Playgroud)

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

  • 如果由于其他原因不需要“git”包,您可以删除它。文档指出“您需要一个基本的工具链,包括 bash、zip、unzip 和 curl(特殊情况需要 tar 和 gzip)”。Git 是 Windows 用户的第三个选择。请参阅 https://sdkman.io/install。 (3认同)