docker - 在基于 Alpine 的 Docker 映像中安装 Sdkman
问题描述
我需要在基于 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 的安装和运行 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"
推荐阅读
- python - Python SVM 混淆图输出
- omnet++ - 如何在 OMNeT++ 中使用 INET 访问和使用接收节点中的数据包内容?
- tinymce - Your access to TinyMCE will expire on 25 Februrary 2021 ! How to fix it?
- go - 出乎意料的围棋频道出现
- sql-server - SQL Server - 批处理和 1 秒等待
- java - 从另一个 Java 程序编译和运行 Java 程序并获取控制台
- c++ - Antlr4 c++ 从 ParseTree 获取规则名称 *
- sql - 在 SQL 数据库 (Azure) 中获取最大日期的最快方法
- batch-file - 批处理文件以删除 txt 文件中的字符并将其重命名为当前日期
- typescript - 是否有泛型表示法,以便 TypeScript 超类方法可以返回与子类兼容的类型?