@@ -63,19 +63,31 @@ RUN apk add --no-cache python3 py3-pip bash
6363
6464ENV NODE_ENV=production
6565
66- COPY --from=builder /app/apps/sim/public ./apps/sim/public
67- COPY --from=builder /app/apps/sim/.next/standalone ./
68- COPY --from=builder /app/apps/sim/.next/static ./apps/sim/.next/static
66+ # Create non-root user and group
67+ RUN addgroup -g 1001 -S nodejs && \
68+ adduser -S nextjs -u 1001
6969
70- # Copy guardrails setup script and requirements
71- COPY --from=builder /app/apps/sim/lib/guardrails/setup.sh ./apps/sim/lib/guardrails/setup.sh
72- COPY --from=builder /app/apps/sim/lib/guardrails/requirements.txt ./apps/sim/lib/guardrails/requirements.txt
73- COPY --from=builder /app/apps/sim/lib/guardrails/validate_pii.py ./apps/sim/lib/guardrails/validate_pii.py
70+ COPY --from=builder --chown=nextjs:nodejs /app/apps/sim/public ./apps/sim/public
71+ COPY --from=builder --chown=nextjs:nodejs /app/apps/sim/.next/standalone ./
72+ COPY --from=builder --chown=nextjs:nodejs /app/apps/sim/.next/static ./apps/sim/.next/static
7473
75- # Run guardrails setup to create venv and install Python dependencies
74+ # Guardrails setup (files need to be owned by nextjs for runtime)
75+ COPY --from=builder --chown=nextjs:nodejs /app/apps/sim/lib/guardrails/setup.sh ./apps/sim/lib/guardrails/setup.sh
76+ COPY --from=builder --chown=nextjs:nodejs /app/apps/sim/lib/guardrails/requirements.txt ./apps/sim/lib/guardrails/requirements.txt
77+ COPY --from=builder --chown=nextjs:nodejs /app/apps/sim/lib/guardrails/validate_pii.py ./apps/sim/lib/guardrails/validate_pii.py
78+
79+ # Run guardrails setup as root, then fix ownership of generated venv files
7680RUN chmod +x ./apps/sim/lib/guardrails/setup.sh && \
7781 cd ./apps/sim/lib/guardrails && \
78- ./setup.sh
82+ ./setup.sh && \
83+ chown -R nextjs:nodejs /app/apps/sim/lib/guardrails
84+
85+ # Create .next/cache directory with correct ownership
86+ RUN mkdir -p apps/sim/.next/cache && \
87+ chown -R nextjs:nodejs /app
88+
89+ # Switch to non-root user
90+ USER nextjs
7991
8092EXPOSE 3000
8193ENV PORT=3000 \
0 commit comments