30 lines
1.4 KiB
Docker
30 lines
1.4 KiB
Docker
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build
|
|
WORKDIR /src
|
|
COPY src/TcpEcho/TcpEcho.csproj TcpEcho/
|
|
RUN dotnet restore TcpEcho/TcpEcho.csproj
|
|
COPY src/TcpEcho/ TcpEcho/
|
|
RUN dotnet publish TcpEcho/TcpEcho.csproj -c Release -o /app --no-restore
|
|
|
|
FROM mcr.microsoft.com/dotnet/runtime:8.0-alpine
|
|
ARG VERSION=dev
|
|
ARG REVISION=unknown
|
|
ARG CREATED=""
|
|
# OCI labels: Gitea's package registry displays these on the package page and, when
|
|
# image.source matches a repository URL, links the package to that repository.
|
|
LABEL org.opencontainers.image.title="tcp-echo-server" \
|
|
org.opencontainers.image.description="Minimal .NET 8 TCP echo server that prefixes every reply with its instance identifier. Deployed as two instances behind Traefik on ports 9098 and 9099." \
|
|
org.opencontainers.image.source="https://gitea.eitczech.com/public/tcp-echo-server" \
|
|
org.opencontainers.image.url="https://gitea.eitczech.com/public/tcp-echo-server" \
|
|
org.opencontainers.image.documentation="https://gitea.eitczech.com/public/tcp-echo-server/src/branch/main/README.md" \
|
|
org.opencontainers.image.vendor="eitczech" \
|
|
org.opencontainers.image.licenses="MIT" \
|
|
org.opencontainers.image.version="${VERSION}" \
|
|
org.opencontainers.image.revision="${REVISION}" \
|
|
org.opencontainers.image.created="${CREATED}"
|
|
WORKDIR /app
|
|
COPY --from=build /app .
|
|
ENV PORT=9099
|
|
EXPOSE 9099
|
|
USER 1654
|
|
ENTRYPOINT ["dotnet", "TcpEcho.dll"]
|