我正在使用SpringBoot和Java和Docker开发应用程序。
我想在我的应用程序中安装Netcat,以便可以在spring应用程序启动之前检查特定的容器是否已启动。
我尝试过
RUN apt-get update && apt-get -y install netcat && apt-get clean
但是它说没有找到apt-get。
我不确定如何在基于Java的应用程序中安装任何程序包管理器。
或者我可以安装net-cat吗?
下面是我的Dockerfile
FROM openjdk:8
RUN apt-get update && apt-get -y install netcat && apt-get clean
ADD target/student.jar student.jar
EXPOSE 2018
ENTRYPOINT ["java","-jar","student.jar"]
答案 0 :(得分:1)
apt-get
是基于Debian的Linux发行版(包括Ubuntu和其他版本)的软件包管理器。
改为尝试apk add
。
此外,如果您在Dockerfile
中使用软件包管理器,则明确指定Linux发行版被认为是一种好习惯。根据您的情况,您可以使用openjdk:8-jdk-stretch
变体或指定了发行版的任何其他变体。
答案 1 :(得分:1)
使用此docker build
,我可以成功获得Dockerfile
FROM openjdk:8
RUN apt-get update && apt-get -y install netcat && apt-get clean
ENTRYPOINT ["/bin/bash"]
和apt-get
可以正常工作。据我所知openjdk:8
是Ubuntu(或至少基于Debian)。即使我运行
docker build . -t stackexample
docker run -it stackexample
进入容器,运行netcat
打开netcat cmd。