簡體   English   中英

在基於docker鏡像的Debian安裝Java運行時

[英]Install Java runtime in Debian based docker image

我正在嘗試在基於 Debian 的 docker 圖像 (mcr.microsoft.com/do.net/core/sdk:3.1-buster) 中安裝 java 運行時。 根據各種方法,這應該可以通過運行

RUN apt update
RUN apt-get install openjdk-11-jre

后一個命令返回

E: Unable to locate package openjdk-11-jre

但是根據https://packages.debian.org/buster/openjdk-11-jre package 確實存在。 我究竟做錯了什么?

不確定您從哪個圖像中提取。 我用的是苗條的Dockerfile

from debian:buster-slim

ENV DEBIAN_FRONTEND=noninteractive

RUN mkdir -p /usr/share/man/man1 /usr/share/man/man2

RUN apt-get update && \
apt-get install -y --no-install-recommends \
        openjdk-11-jre

# Prints installed java version, just for checking
RUN java --version

注意:如果你不運行mkdir -p /usr/share/man/man1 /usr/share/man/man2你會遇到 ca-certificates、openjdk-11-jre-headless 等的依賴問題。我一直在使用社區提供的這個修復程序,還沒有真正檢查過永久修復程序。

我想為我的 C# 項目從我的 dockerfile 安裝 Java 運行時。有人可以幫我嗎? 目前我有這個 dockerfile 它在 dotnet core3.1 上完美運行

FROM  public.ecr.aws/lambda/dotnet:core3.1 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR .
COPY ["ScenarioRunner/ScenarioRunner.csproj", "ScenarioRunner/"]
COPY ["Scenarios/Scenarios.csproj", "Scenarios/"]
RUN dotnet restore "ScenarioRunner/ScenarioRunner.csproj"
COPY . .
WORKDIR "ScenarioRunner"
RUN dotnet build "ScenarioRunner.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ScenarioRunner.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /var/task
COPY --from=publish /app/publish .
CMD ["ScenarioRunner::ScenarioRunner.ScenarioRunnerFunction::FunctionHandlerAsync"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM