# Base Node.js image FROM node:18-alpine # Set working directory WORKDIR /app # Install necessary tools (git, bash, etc.) RUN apk add --no-cache git bash # Copy application files to container COPY . . # Install dependencies RUN yarn install # Set permissions for users.json and users directory RUN touch users.json && \ chmod 666 users.json && \ mkdir -p users && \ chmod 777 users # Ensure start.sh is executable RUN chmod +x start.sh # Create a non-root user and switch to it RUN adduser -D appuser USER appuser # Expose application port EXPOSE 7860 # Set default environment variables ENV NODE_ENV=production ENV PORT=7860 # Healthcheck to ensure app is running HEALTHCHECK --interval=30s --timeout=10s --start-period=5s CMD curl -f http://localhost:7860 || exit 1 # Run start script CMD ["sh", "./start.sh"]