# LittleShop Production Dockerfile FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app EXPOSE 8080 # Create non-root user RUN addgroup --system --gid 1001 littleshop \ && adduser --system --uid 1001 --ingroup littleshop littleshop # Create necessary directories RUN mkdir -p /app/data /app/logs /app/wwwroot/uploads \ && chown -R littleshop:littleshop /app # Copy published application COPY . . # Set ownership RUN chown -R littleshop:littleshop /app # Switch to non-root user USER littleshop # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8080/health || exit 1 # Set environment variables ENV ASPNETCORE_ENVIRONMENT=Production ENV ASPNETCORE_URLS=http://+:8080 ENTRYPOINT ["./LittleShop"]