繁体   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