Установите sdkman в образе докера - PullRequest
0 голосов
/ 06 декабря 2018

Ошибка при установке sdkman в образе ubantu.

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"

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Похоже, установка sdkman завершилась неудачно.Когда я запустил ваш код выше, он пожаловался на отсутствие пакетов unzip и zip.

После удовлетворения зависимостей вам также нужно пометить сценарий инициализации как исполняемый с помощью:

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"

PS: побежден!

0 голосов
/ 06 декабря 2018

TL; DR

Установка unzip & zip, что означает изменение

RUN apt-get -qq -y install curl

на

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

или лучше

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, после установки все работает нормально.

Итак, прочитайте ваши логи / вывод команд.Особенно здесь это действительно хорошо видно: -)


* PS Было бы определенно лучше, если бы curl -s https://get.sdkman.io | bash завершился с ненулевым кодом.Таким образом, это терпит неудачу на следующей команде.Но это не то, что вы можете исправить;) *

...