load / Dockerfile
Chrunos's picture
Update Dockerfile
445405a verified
# Use a specific LTS version of Node.js
FROM node:18
# Install pnpm and diagnostic tools
RUN npm install -g pnpm
RUN apt-get update && apt-get install -y git curl \
&& rm -rf /var/lib/apt/lists/*
# Set environment variables
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
API_URL=https://chrunos-load.hf.space \
API_PORT=7860 \
USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
ACCEPT_LANGUAGE="en-US,en;q=0.9"
# Create user and set up directories
RUN useradd -o -u 1000 user && \
mkdir -p $HOME/app && \
mkdir -p /app/cookies && \
chown -R user:user $HOME /app/cookies
ENV COOKIE_PATH=/app/cookies/cookies.json
RUN touch /app/cookies/cookies.json && \
chown user:user /app/cookies/cookies.json && \
chmod 644 /app/cookies/cookies.json
USER user
WORKDIR $HOME/app
# Add error handling to git clone
RUN git clone -b main https://github.com/imputnet/cobalt || { echo "Git clone failed"; exit 1; }
COPY --chown=user:user ./cookies.json /app/cookies/cookies.json
WORKDIR $HOME/app/cobalt/api/src
RUN pnpm install
EXPOSE 7860
# Add proxy and request headers during runtime
CMD ["pnpm", "start"]