This commit is contained in:
Executable
+75
@@ -0,0 +1,75 @@
|
||||
######################
|
||||
## Build Frontend ##
|
||||
######################
|
||||
|
||||
FROM --platform=$BUILDPLATFORM node:alpine AS build-frontend
|
||||
WORKDIR /src
|
||||
|
||||
# Define base address
|
||||
ARG BASE_URL=/
|
||||
|
||||
# Install the angular CLI
|
||||
RUN npm install -g @angular/cli
|
||||
|
||||
# Copy the package.json into this build step
|
||||
COPY ./src/Client/package.json ./
|
||||
|
||||
# Pull dependencies
|
||||
RUN npm install
|
||||
|
||||
# Copy the rest of the frontend over
|
||||
COPY ./src/Client/ ./
|
||||
|
||||
# Compile the source
|
||||
RUN ng build --base-href=${BASE_URL}
|
||||
|
||||
#####################
|
||||
## Build Backend ##
|
||||
#####################
|
||||
|
||||
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS build-backend
|
||||
WORKDIR /src
|
||||
|
||||
# Copy the csproj
|
||||
COPY ./src/Server/Server.csproj ./
|
||||
|
||||
# Restore the Server
|
||||
RUN dotnet restore './Server.csproj'
|
||||
|
||||
# Copy the rest of the backend over
|
||||
COPY ./src/Server/ ./
|
||||
|
||||
# Get the target arch
|
||||
ARG TARGETARCH
|
||||
|
||||
# Build the source
|
||||
RUN set -e && \
|
||||
if [ "$TARGETARCH" = "arm64" ]; then RID="linux-arm64"; \
|
||||
elif [ "$TARGETARCH" = "amd64" ]; then RID="linux-x64"; \
|
||||
else echo "Unsupported ARCH: $TARGETARCH"; exit 1; \
|
||||
fi && \
|
||||
dotnet publish './Server.csproj' -c Release -r ${RID} -o /app/publish
|
||||
|
||||
################
|
||||
## Publish ##
|
||||
################
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:9.0
|
||||
WORKDIR /app
|
||||
|
||||
ENV ASPNETCORE_HTTP_PORTS=5000
|
||||
ENV StripeKey=null
|
||||
ENV MySQLServer=null
|
||||
ENV MySQLUser=null
|
||||
ENV MySQLPass=null
|
||||
ENV MySQLDatabase=Mistox
|
||||
|
||||
EXPOSE 5000
|
||||
|
||||
# Copy in the server
|
||||
COPY --from=build-backend /app/publish ./
|
||||
|
||||
# Copy in the client
|
||||
COPY --from=build-frontend /debug/wwwroot ./wwwroot/
|
||||
|
||||
ENTRYPOINT ["dotnet", "MistoxWebsite.Server.dll", "--url", "http://localhost:5000"]
|
||||
Reference in New Issue
Block a user