FROM node:22-alpine WORKDIR /app # Copy local files instead of git clone COPY . /app # Create data directory for file storage RUN mkdir -p /app/data # Install dependencies RUN npm cache clean --force && \ npm install --production --no-optional && \ npm install mocha && \ chmod +x app.sh # Build assets if needed RUN node update-js.js || echo "No update-js.js script found" # Create a simple override config to force file storage RUN echo "var config = require('./config.js'); config.storage = { type: 'file', path: '/app/data' }; module.exports = config;" > /app/config.override.js && \ sed -i '1s/^/var config = require(".\/config.override.js"); /' server.js # Set environment variables ENV NODE_ENV=production \ HASTEBIN_STORAGE_TYPE=file \ STORAGE_TYPE=file \ STORAGE_PATH=/app/data \ STORAGE_HOST=localhost \ HASTEBIN_ENABLE_CSP=true \ HASTEBIN_ENABLE_HSTS=false \ HASTEBIN_ENABLE_CROSS_ORIGIN_ISOLATION=true # Expose port EXPOSE 7777 # Use app.sh script as entry point CMD ["/app/app.sh"]