如何在基于 java 的 docker 图像中安装包管理器
How to install package manager in java based docker image
我正在使用 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"]
apt-get
是基于 Debian 的 Linux 发行版(包括 Ubuntu 和其他发行版)的包管理器。
试试 apk add
。
此外,如果您在 Dockerfile
中使用包管理器,明确指定 Linux 发行版 被认为是一种很好的做法。在您的情况下,您可以使用 openjdk:8-jdk-stretch
变体或任何其他指定发行版的变体。
我可以用这个 Dockerfile
获得成功 docker build
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 命令。
我正在使用 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"]
apt-get
是基于 Debian 的 Linux 发行版(包括 Ubuntu 和其他发行版)的包管理器。
试试 apk add
。
此外,如果您在 Dockerfile
中使用包管理器,明确指定 Linux 发行版 被认为是一种很好的做法。在您的情况下,您可以使用 openjdk:8-jdk-stretch
变体或任何其他指定发行版的变体。
我可以用这个 Dockerfile
docker build
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 命令。