Как установить менеджер пакетов в образе докера на основе Java - PullRequest
0 голосов
/ 25 февраля 2019

Я занимаюсь разработкой приложения с использованием 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"]

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Я могу получить успешный 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.

0 голосов
/ 25 февраля 2019

apt-get - менеджер пакетов для дистрибутивов Linux на основе Debian (включая Ubuntu и другие).

Вместо этого попробуйте apk add.

Также, если вы используете менеджеры пакетов в вашемDockerfile, считается хорошей практикой явно указывать дистрибутив Linux .В вашем случае вы можете использовать openjdk:8-jdk-stretch вариант или любой другой, где указан дистрибутив.

...