我完全不了解Docker的概念。我正在创建以下Dockerfile作为练习。
我正在使用SDKMAN!来安装
我错在哪里了?
需要注意的是,这些步骤对于我的主机发行版(我正在运行docker的那个)非常有效,该发行版是
FROM ubuntu:latest
MAINTAINER kesarling
RUN apt update && apt upgrade -y
RUN apt install nginx curl zip unzip -y
RUN apt install openjdk-14-jdk python3 python3-doc clang golang-go gcc g++ -y
RUN curl -s "https://get.sdkman.io" | bash
RUN bash /root/.sdkman/bin/sdkman-init.sh
RUN sdk version
RUN yes | bash -c 'sdk install kotlin'
CMD [ "echo","The development environment has now been fully setup with C, C++, JAVA, Python3, Go and Kotlin" ]
我正在使用SDKMAN!来安装
Kotlin
。最初的问题是,我使用的是RUN source /root/.sdkman/bin/sdkman-init.sh
而不是RUN bash /root/.sdkman/bin/sdkman-init.sh
。然而,它给出了错误,说source
not found。因此,我尝试使用RUN . /root/.sdkman/bin/sdkman-init.sh
,但它没有起作用。然而,RUN bash /root/.sdkman/bin/sdkman-init.sh
似乎可以工作,因为它不会给出任何错误并尝试运行下一个命令。然而,docker随后会出现sdk: not found
的错误提示。我错在哪里了?
需要注意的是,这些步骤对于我的主机发行版(我正在运行docker的那个)非常有效,该发行版是
Pop!_OS 20.04
。
sdk
安装在哪里?(也许您应该检查PATH
的值。) - ynnsdk
做了配置吗? - ynnDockerfile
中写下了与我的主机相同的步骤(好的,首先,我安装docker的机器被称为主机机器,就像我们对虚拟机一样),并且在我的主机上没有任何配置就可以正常工作。在Dockerfile
中有必要配置sdkman
吗? - kesarling He-Himubuntu
vspop!_os
),更重要的是,docker基础镜像(例如ubuntu:latest
)通常是最小化的;许多配置或必要工具都会缺失。 - ynn