fix: add curl and pass environment variables to Docker build

- Install curl in Alpine image for health checks
- Add ARG and ENV declarations for NEXT_PUBLIC_* variables in builder stage
- Pass build args from docker-compose.yml to Dockerfile
- Update health checks to use curl instead of node -e
- Update .env.example with helpful comments for Docker vs local dev

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
valknarness
2025-11-07 15:48:10 +01:00
parent 0c8f3e0d0f
commit 8fa5511660
3 changed files with 19 additions and 3 deletions

View File

@@ -29,6 +29,14 @@ COPY . .
ENV NEXT_TELEMETRY_DISABLED=1
ENV NODE_ENV=production
# Accept build args for environment variables
ARG NEXT_PUBLIC_API_URL
ARG NEXT_PUBLIC_APP_URL
# Set environment variables for Next.js build
ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
ENV NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL}
# Build the application
RUN pnpm build
@@ -40,6 +48,9 @@ WORKDIR /app
ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
# Install curl for health checks
RUN apk add --no-cache curl
# Create non-root user
RUN addgroup --system --gid 1001 nodejs && \
adduser --system --uid 1001 nextjs
@@ -58,6 +69,6 @@ ENV HOSTNAME="0.0.0.0"
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD node -e "require('http').get('http://localhost:3000/api/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"
CMD curl -f http://localhost:3000/ || exit 1
CMD ["node", "server.js"]