как построить docker образ, который использует java11 - PullRequest
0 голосов
/ 17 апреля 2020

Я работаю с Spring boot. Следующий Dockerfile и запустите. sh работает нормально, а образ docker создается с помощью плагина docker в build.gradle.

Теперь я хочу сделать docker изображение приложение, которое использует некоторые функции Java11. Итак, если я сделал docker изображение из следующего Dockerfile. Как я мог это сделать? Таким образом, функции Java11 могут быть доступны с изображением docker.

build.gradle

task buildDocker(type: Docker, dependsOn: build) {
    push = false
    applicationName = jar.baseName
    dockerfile = file('src/main/docker/Dockerfile')
    doFirst {
        copy {
            from jar
            into stageDir
        }
        copy {
            from "${project.buildDir}/resources/main/run.sh"
            into stageDir
        }
    }

Dockerfile

FROM openjdk:8u121-jdk-alpine

# Keep consistent with build.gradle
ENV APP_JAR_NAME pineCharts

# Install curl
RUN apk --update add curl bash && \
    rm -rf /var/cache/apk/*

RUN mkdir /app

ADD ${APP_JAR_NAME}.jar /app/
ADD run.sh /app/
RUN chmod +x /app/run.sh

WORKDIR /app

EXPOSE 8082

ENTRYPOINT ["/bin/bash","-c"]
CMD ["/app/run.sh"]

пробег. sh

#!/usr/bin/env bash
java -Djava.security.egd=file:/dev/urandom -Dspring.profiles.active=${SPRING_ACTIVE_PROFILE} -Dgit.config.active.branch=${GIT_BRANCH_LABEL} -Duser.timezone=Asia/Kolkata -XX:+PrintFlagsFinal $JAVA_OPTIONS -jar ${APP_JAR_NAME}.jar

1 Ответ

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

Вот пример

FROM adoptopenjdk/openjdk11:latest

RUN mkdir -p /software/app

ADD target/app.jar /software/app/app.jar

ENV port=8888

CMD java -jar /software/app/app.jar -Dspring.profiles.active=${SPRING_ACTIVE_PROFILE}
...