#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base

RUN apt-get update \
    && apt-get install -y --no-install-recommends dialog \
    && apt-get install -y --no-install-recommends openssh-server \
	&& apt-get install -y tcpdump\
	&& mkdir -p /run/sshd \
    && echo "root:Docker!" | chpasswd 
	
COPY sshd_config /etc/ssh/sshd_config

RUN sed -i 's/TLSv1.2/TLSv1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["EVCB_OCPP.WEBAPI/EVCB_OCPP.WEBAPI.csproj", "EVCB_OCPP.WEBAPI/"]
RUN dotnet restore "EVCB_OCPP.WEBAPI/EVCB_OCPP.WEBAPI.csproj"
COPY . .
WORKDIR "/src/EVCB_OCPP.WEBAPI"
RUN dotnet build "EVCB_OCPP.WEBAPI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "EVCB_OCPP.WEBAPI.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY entrypoint.sh .
RUN chmod +x /app/entrypoint.sh
CMD ["/app/entrypoint.sh"]