hastebin/Dockerfile

38 lines
722 B
Docker

FROM node:18-alpine as builder
WORKDIR /app
# Copy package files first for better caching
COPY package*.json ./
# Clean npm cache and install dependencies with specific flags to avoid errors
RUN npm cache clean --force && \
npm install --production --no-optional && \
npm install mocha
# Copy the rest of the application
COPY . .
# Make sure app.sh is executable
RUN chmod +x app.sh
# Build assets
RUN node update-js.js
FROM node:18-alpine
WORKDIR /app
# Copy from builder stage
COPY --from=builder /app .
# Set environment variables
ENV NODE_ENV=production \
HASTEBIN_ENABLE_CSP=true \
HASTEBIN_ENABLE_HSTS=true
# Expose port
EXPOSE 7777
# Use app.sh script as entry point
CMD ["/app/app.sh"]