46 lines
1.1 KiB
Docker
46 lines
1.1 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
# Install dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
wget \
|
|
gnupg \
|
|
xvfb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Node.js 22.x
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
&& apt-get install -y nodejs
|
|
|
|
# Install Google Chrome
|
|
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
|
|
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list \
|
|
&& apt-get update \
|
|
&& apt-get install -y google-chrome-stable \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set up Xvfb (virtual display)
|
|
RUN Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
|
ENV DISPLAY=:99
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy package files
|
|
COPY package*.json ./
|
|
|
|
# Install NPM dependencies
|
|
RUN npm install
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Install PM2 globally
|
|
RUN npm install -g pm2
|
|
|
|
# Expose port 8080 (for Cloudflare solver)
|
|
EXPOSE 8080
|
|
|
|
# Start PM2 with production mode (npm start equivalent)
|
|
CMD pm2 start index.js --name "cf-bypass" --no-daemon && pm2 startup && pm2 save
|