making-new-thing-testing-pushing-huginface's picture
Update Dockerfile
8f6f133 verified
# Use Ubuntu as the base image
FROM ubuntu:latest
# Set environment variables for non-interactive installation
ENV DEBIAN_FRONTEND=noninteractive
# Install necessary packages
RUN apt-get update && \
apt-get install -y wget unzip tar sudo curl build-essential && \
apt-get clean
# Install Node.js and npm (version 18)
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && \
apt-get install -y nodejs
# Update npm to the latest version
RUN npm install -g npm@latest
# Install gritty globally
RUN npm install -g [email protected]
# Set environment variables for the user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# Create and set the working directory
WORKDIR $HOME/app
# Download and extract the necessary files
RUN wget -O akuh.zip https://media.githubusercontent.com/media/akuhnet/wqemu/master/akuh.zip && \
unzip akuh.zip && \
unzip root.zip && \
rm -rf akuh.zip root.zip && \
chmod +x ./dist/proot
# Download and extract a minimal root filesystem for proot
RUN wget http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.4-base-amd64.tar.gz && \
mkdir -p ./rootfs && \
tar -xzf ubuntu-base-20.04.4-base-amd64.tar.gz -C ./rootfs && \
rm ubuntu-base-20.04.4-base-amd64.tar.gz
# Change ownership of .npm directory to user
RUN mkdir -p /home/user/.npm && \
chown -R 1000:1000 /home/user/.npm
# Set up the proot environment and install additional packages
RUN ./dist/proot -S ./rootfs /bin/bash -c "\
apt-get update && \
apt-get install -y sudo apt-utils && \
sudo apt update && \
sudo apt upgrade -y && \
sudo apt update --fix-missing && \
sudo apt install apt-utils -y && \
echo '-: Package and Sudo setup complete. :-'"
# Expose port 8000 (if needed for your application)
EXPOSE 7860
# Set the entrypoint to open a normal terminal for the web UI
CMD ["gritty", "--port", "7860", "--command", "bash", "--auto-restart"]