| |
| FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base |
| WORKDIR /app |
| EXPOSE 7860 |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| supervisor \ |
| curl \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN mkdir -p /var/log/supervisor /etc/supervisor/conf.d |
|
|
| |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf |
|
|
| |
| RUN chmod 755 /var/log/supervisor /etc/supervisor/conf.d |
|
|
| |
| FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build |
| WORKDIR /src |
|
|
| |
| COPY ["ToolHub.csproj", "./"] |
| RUN dotnet restore "ToolHub.csproj" |
|
|
| |
| COPY . . |
| WORKDIR "/src" |
|
|
| |
| RUN dotnet build "ToolHub.csproj" -c Release -o /app/build |
|
|
| |
| FROM build AS publish |
| RUN dotnet publish "ToolHub.csproj" -c Release -o /app/publish /p:UseAppHost=false |
|
|
| |
| FROM base AS final |
| WORKDIR /app |
|
|
| |
| COPY --from=publish /app/publish . |
|
|
| |
| COPY start.sh /app/start.sh |
| RUN chmod +x /app/start.sh |
|
|
| |
| RUN mkdir -p /app/data |
|
|
| |
| RUN chown -R root:root /app && chmod -R 755 /app |
|
|
| |
| ENV ASPNETCORE_URLS=http://+:7860 |
| ENV ASPNETCORE_ENVIRONMENT=Production |
| ENV DOTNET_RUNNING_IN_CONTAINER=true |
|
|
| |
| HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ |
| CMD curl -f http://localhost:7860/ || exit 1 |
|
|
| |
| CMD ["/app/start.sh"] |
|
|