在docker映像中安装sdkman

在docker映像中安装sdkman,docker,ubuntu,sdk,docker-compose,Docker,Ubuntu,Sdk,Docker Compose,安装SDKMAN时出错在ubuntu16.04docker图像中 FROM ubuntu:16.04 RUN apt-get update RUN rm /bin/sh && ln -s /bin/bash /bin/sh RUN apt-get -qq -y install curl RUN curl -s https://get.sdkman.io | bash RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh" RUN sour

安装
SDKMAN时出错
ubuntu16.04
docker图像中

FROM ubuntu:16.04
RUN apt-get update
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -qq -y install curl
RUN curl -s https://get.sdkman.io | bash
RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"
RUN source "$HOME/.sdkman/bin/sdkman-init.sh"
TL;博士 安装
unzip
&
zip
,这意味着更改

RUN apt-get -qq -y install curl

或者更好

RUN apt-get -qq -y install \
    curl \
    unzip \
    zip

解释 当您尝试构建Dockerfile时,您将得到

    .....

    Step 5/6 : RUN curl -s https://get.sdkman.io | bash
    ---> Running in 1ce678a59561

    --- SDKMAN LOGO ---

    Now attempting installation...

    Looking for a previous installation of SDKMAN...
    Looking for unzip...
    Not found.
    ======================================================================================================
    Please install unzip on your system using your favourite package manager.

    Restart after installing unzip.
    ======================================================================================================

    Removing intermediate container 1ce678a59561
    ---> 22211eafd50c
    Step 6/6 : RUN source "$HOME/.sdkman/bin/sdkman-init.sh"
    ---> Running in 1c5cb7d79ef0
    /bin/sh: /root/.sdkman/bin/sdkman-init.sh: No such file or directory
    The command '/bin/sh -c source "$HOME/.sdkman/bin/sdkman-init.sh"' returned a non-zero code: 1
你需要做的就是写在那里。本部分:

    ======================================================================================================
    Please install unzip on your system using your favourite package manager.

    Restart after installing unzip.
    ======================================================================================================
安装unzip时,zip也会出现同样的错误。安装后,一切正常

因此,请阅读日志/命令输出。:-)


*另外,如果
curl-S会更好https://get.sdkman.io |bash
以非零代码退出。这样,它在下一个命令中失败。但这不是你能解决的;)*

TL;博士 安装
unzip
&
zip
,这意味着更改

RUN apt-get -qq -y install curl

或者更好

RUN apt-get -qq -y install \
    curl \
    unzip \
    zip

解释 当您尝试构建Dockerfile时,您将得到

    .....

    Step 5/6 : RUN curl -s https://get.sdkman.io | bash
    ---> Running in 1ce678a59561

    --- SDKMAN LOGO ---

    Now attempting installation...

    Looking for a previous installation of SDKMAN...
    Looking for unzip...
    Not found.
    ======================================================================================================
    Please install unzip on your system using your favourite package manager.

    Restart after installing unzip.
    ======================================================================================================

    Removing intermediate container 1ce678a59561
    ---> 22211eafd50c
    Step 6/6 : RUN source "$HOME/.sdkman/bin/sdkman-init.sh"
    ---> Running in 1c5cb7d79ef0
    /bin/sh: /root/.sdkman/bin/sdkman-init.sh: No such file or directory
    The command '/bin/sh -c source "$HOME/.sdkman/bin/sdkman-init.sh"' returned a non-zero code: 1
你需要做的就是写在那里。本部分:

    ======================================================================================================
    Please install unzip on your system using your favourite package manager.

    Restart after installing unzip.
    ======================================================================================================
安装unzip时,zip也会出现同样的错误。安装后,一切正常

因此,请阅读日志/命令输出。:-)


*另外,如果
curl-S会更好https://get.sdkman.io |bash
以非零代码退出。这样,它在下一个命令中失败。但这不是你能解决的;)*

看来安装失败了。 当我在上面运行代码时,它抱怨缺少
unzip
zip

满足依赖项后,还需要使用以下命令将init脚本标记为可执行:

chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"
因此,您的Dockerfile应该如下所示:

FROM ubuntu:16.04
RUN apt-get update
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -q -y install curl zip unzip
RUN curl -s https://get.sdkman.io | bash
RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"
RUN source "$HOME/.sdkman/bin/sdkman-init.sh"
附言:被打败了

看来安装失败了。
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get -qq -y install \
    curl \
    unzip \
    zip
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -qq -y install curl
RUN curl -s https://get.sdkman.io | bash
RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"

RUN source "$HOME/.sdkman/bin/sdkman-init.sh"
当我在上面运行代码时,它抱怨缺少
unzip
zip

满足依赖项后,还需要使用以下命令将init脚本标记为可执行:

chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"
因此,您的Dockerfile应该如下所示:

FROM ubuntu:16.04
RUN apt-get update
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -q -y install curl zip unzip
RUN curl -s https://get.sdkman.io | bash
RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"
RUN source "$HOME/.sdkman/bin/sdkman-init.sh"

附言:被打败了

确保您有卷发、wget、解压和压缩。有了它们,我能够成功地安装Sdkman。以下是我的Docker内容

FROM ubuntu:16.04
RUN apt-get update
RUN apt-get -qq -y install \
    curl \
    unzip \
    zip
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -qq -y install curl
RUN curl -s https://get.sdkman.io | bash
RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"

RUN source "$HOME/.sdkman/bin/sdkman-init.sh"
FROM ubuntu:18.04

RUN apt-get update
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -qq -y install curl wget unzip zip

RUN curl -s "https://get.sdkman.io" | bash
RUN source "$HOME/.sdkman/bin/sdkman-init.sh"

确保你有卷发,wget,解压和拉链。有了它们,我能够成功地安装Sdkman。以下是我的Docker内容

FROM ubuntu:18.04

RUN apt-get update
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -qq -y install curl wget unzip zip

RUN curl -s "https://get.sdkman.io" | bash
RUN source "$HOME/.sdkman/bin/sdkman-init.sh"

来自ubuntu:16.04运行apt get update运行apt get-qq-y安装\curl\unzip\zip运行rm/bin/sh&&ln-s/bin/bash/bin/sh运行apt get-qq-y安装curl运行curl-shttps://get.sdkman.io |bash运行chmod a+x“$HOME/.sdkman/bin/sdkman init.sh”运行源“$HOME/.sdkman/bin/sdkman init.sh”
来自ubuntu:16.04运行apt get update运行apt get-qq-y安装\curl\unzip\zip运行rm/bin/sh&&ln-s/bin/bash/bin/sh运行apt get-qq-y安装curl运行curl-shttps://get.sdkman.io |bash运行chmod a+x“$HOME/.sdkman/bin/sdkman init.sh”运行源“$HOME/.sdkman/bin/sdkman init.sh”为什么不使用它?为什么不使用它?我在SDK中找不到SDK命令,如果我需要在SDKMAN中安装一个库,如果你的答案中有这些步骤的话,会有什么遗漏吗?如果我需要在你的答案中的这些步骤之后从sdkman安装一个库,是否缺少一些东西?