【问题标题】:Extend basic alpine image to add dot net core app (Docker)扩展基本 alpine 镜像以添加 dot net core app (Docker)
【发布时间】:2021-12-06 02:49:52
【问题描述】:

我有一个基于 alpine 的图像,它公开了一个 Web 服务器并做了一些工作。我想实例化一个运行该网络服务器的容器,另外我想在运行我的 .net 核心应用程序的同一容器内公开另一个网络服务器。所以基本上我想通过扩展第一个图像并添加运行我的 .net 核心应用程序所需的所有内容来创建一个新图像。我在 Internet 上找到的所有文档都显示了我们如何使用 mcr.microsoft.com/dotnet/aspnet:3.1 作为运行时基础镜像,但我需要一个基于 alpine 的镜像作为基础镜像。所以基本上我需要将 alpine 图像扩展到 mcr.microsoft.com/dotnet/aspnet:3.1 的 docker 文件

【问题讨论】:

标签: docker .net-core


【解决方案1】:

你想要的图片标签是mcr.microsoft.com/dotnet/aspnet:3.1-alpine。这将为您提供基于最新版本 Alpine 的 .NET Core 3.1。您可以在https://hub.docker.com/_/microsoft-dotnet-aspnet 找到支持的标签列表。您还可以在 https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.alpine-x64 找到使用 Alpine 的示例 ASP.NET Core 应用程序的 Dockerfile:

# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
WORKDIR /source

# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore -r linux-musl-x64

# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app -r linux-musl-x64 --self-contained false --no-restore

# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:6.0-alpine-amd64
WORKDIR /app
COPY --from=build /app ./

# See: https://github.com/dotnet/announcements/issues/20
# Uncomment to enable globalization APIs (or delete)
# ENV \
#     DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
#     LC_ALL=en_US.UTF-8 \
#     LANG=en_US.UTF-8
# RUN apk add --no-cache icu-libs

ENTRYPOINT ["./aspnetapp"]

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多