Нужно ли docker образу linux в качестве зависимости для запуска файла войны с весенней загрузкой встроенного джета - PullRequest
2 голосов
/ 07 апреля 2020

У меня есть файл весенней загрузки на основе встроенного джета, и я могу запустить его в моей windows ОС с помощью приведенной ниже команды, и он отлично работает.

java -jar my_app.war

Я новичок в docker, я хочу запустить свой my_app.war в контейнере docker.

Теперь, чтобы создать образ my_app.war, сначала мне нужно включить изображение linux зависимость, а затем добавить изображение openjdk8?

или

Я могу напрямую создать образ для my_app.war, используя только зависимость для изображений openjdk8?

Ответы [ 4 ]

1 голос
/ 07 апреля 2020

Вы можете использовать оба способа. В основном openjdk8 также будет иметь некоторую зависимость от изображения. он напрямую выдаст вам openjdk с разрешенной зависимостью, если для образа inux вам нужно разрешить эту зависимость.

ссылка: https://hub.docker.com/_/openjdk

1 голос
/ 07 апреля 2020

Вы должны посмотреть на здание по одному из изображений [здесь] [1].

FROM openjdk:8-alpine
ADD ./path/to/war/my_app.war dir-in-container/my_app.war
CMD ["java", "-jar", "dir-in-container/my_app.war"]

Это от макушки моей головы, вам, возможно, придется немного поиграться с ней. Обычно go для светлых изображений, таких как Alpine, и в качестве общего указателя не ДОБАВЛЯЙТЕ и НЕ КОПИРУЙТЕ свои файлы в базовом пути контейнера.

0 голосов
/ 07 апреля 2020

Я использую образ Tomcat в качестве основы для военных развертываний:

Вот Dockerfile, который вы можете попробовать, если ваш проект работает с Java 11

FROM tomcat:9.0-jre11-slim

COPY target/libs/binsy.war /usr/local/tomcat/webapps/
ENV JAVA_OPTS="-server -Xmx3168m -Xms3168m"
0 голосов
/ 07 апреля 2020

Да. вам нужно добавить образ openjdk.

Вы можете создать подобный образ с помощью open-jdk-8.

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ADD /build/libs/app.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
...