FROM denoland/deno:alpine-1.48.0 # Set working directory WORKDIR /app # Copy only necessary files COPY deno.json . COPY . . COPY static/img/ static/img/ # Cache dependencies RUN deno cache app.ts # Expose port EXPOSE 8080 # Run as non-root user RUN adduser -D appuser && chown -R appuser:appuser /app USER appuser # Start application # Note: Set SERVICE_DOMAIN environment variable to configure your domain # Example: docker run -e SERVICE_DOMAIN=my-ipv4-service.example.com ... CMD ["run", "--allow-net", "--allow-read", "src/app.ts"]