# Stage 1: Build the Hugo site # Use the official Hugo Docker image (klakegg/hugo) which is always updated with the latest version FROM klakegg/hugo:latest-ext AS builder # Show Hugo version for build logs RUN hugo version # Set the working directory in the container WORKDIR /src # Copy the content of the project to the working directory # This includes your Hugo site source, themes, and nginx.conf COPY . . # Build the Hugo site. # - Output will be in /src/public by default. # - Added --verbose and --debug for more detailed build logs. # - Removed the '|| mkdir ...' fallback to ensure Hugo errors stop the build and are visible. RUN hugo --gc --minify --logLevel info --logLevel debug # Stage 2: Serve the site with Nginx FROM nginx:1.25-alpine # Copy the built static site from the builder stage's /src/public directory COPY --from=builder /src/public /usr/share/nginx/html # Copy our custom Nginx configuration from the project root (copied in Stage 1) # into the Nginx configuration directory. COPY nginx.conf /etc/nginx/conf.d/default.conf # Expose port 80 EXPOSE 80 # Start Nginx in foreground CMD ["nginx", "-g", "daemon off;"]