From af5bd0fa633de4cad61453f6aa4ed46874210d61 Mon Sep 17 00:00:00 2001
From: Darrell
Date: Mon, 7 Oct 2024 18:44:55 -0400
Subject: [PATCH] Update Dockerfile
---
Dockerfile | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index 64ea5b68..6df385b9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,33 +1,37 @@
-FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim-amd64 as build-env
+# Build stage
+FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim-amd64 AS build-env
ARG TARGETPLATFORM
ARG BUILDPLATFORM
-RUN apt-get update \
- && apt-get install -y ca-certificates curl gnupg \
- && mkdir -p /etc/apt/keyrings \
- && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
- && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
- && apt-get update \
- && apt-get install nodejs -y;
+# Install Node.js
+RUN apt-get update && apt-get install -y ca-certificates curl gnupg && \
+ mkdir -p /etc/apt/keyrings && \
+ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
+ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
+ apt-get update && \
+ apt-get install -y nodejs && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
WORKDIR /App
-
COPY . ./
-RUN dotnet restore
-RUN echo "I am running on ${BUILDPLATFORM}"
-RUN echo "building for ${TARGETPLATFORM}"
-RUN export TARGETPLATFORM="${TARGETPLATFORM}"
+RUN echo "Building on ${BUILDPLATFORM} for ${TARGETPLATFORM}"
+RUN dotnet restore
RUN dotnet publish -c Release -o out
-FROM mcr.microsoft.com/dotnet/aspnet:8.0
+# Runtime stage
+FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /App
EXPOSE 8267 8268
-ENV ASPNETCORE_URLS "http://+:8267"
-ENV OTA_UPDATE_PORT 8268
-ENV CONFIG_DIR "/config/espresense"
+
+ENV ASPNETCORE_URLS="http://+:8267" \
+ OTA_UPDATE_PORT=8268 \
+ CONFIG_DIR="/config/espresense"
+
COPY --from=build-env /App/out .
+
LABEL \
io.hass.version="VERSION" \
io.hass.type="addon" \