У меня есть этот Dockerfile:
FROM oracle/graalvm-ce:19.3.1-java11 as graalvm
RUN gu install native-image
COPY . /home/app/monolith
WORKDIR /home/app/monolith
RUN ./gradlew clean build
RUN native-image --no-server -cp build/libs/monolith-*-all.jar
FROM frolvlad/alpine-glibc
RUN apk update && apk add libstdc++
EXPOSE 8080
COPY --from=graalvm /home/app/monolith/monolith /app/monolith
ENTRYPOINT ["/app/monolith"]
Это довольно просто. На первом этапе он создает собственное изображение из фляги, а на втором он использует крошечное альпийское изображение для запуска этого двоичного файла. Я хочу перенести его в базу.
Я вытягиваю обе базы в своем рабочем пространстве следующим образом:
container_pull (
name = "graalvm",
registry = "index.docker.io",
repository = "oracle/graalvm-ce",
tag = "20.0.0-java11",
)
container_pull (
name = "alpine_glibc",
registry = "index.docker.io",
repository = "frolvlad/alpine-glibc",
tag = "glibc-2.30",
)
После этого я не уверен, что первое изображение с java_library
и Внедрить результат во второй для генерации результирующего изображения.