ar08 commited on
Commit
4d4514f
·
verified ·
1 Parent(s): bf4eff8

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +46 -32
Dockerfile CHANGED
@@ -3,37 +3,28 @@ FROM python:3.9
3
 
4
  # Set environment variables
5
  ENV DEBIAN_FRONTEND=noninteractive
6
- ENV USER=coder
7
- ENV HOME=/home/$USER
8
- ENV PATH=$HOME/.local/bin:$PATH
9
- ENV CONDA_DIR=$HOME/conda
10
- ENV PATH=$CONDA_DIR/bin:$PATH
11
 
12
- # Install necessary tools
13
  RUN apt-get update && \
14
  apt-get install -y \
15
  curl \
16
  sudo \
17
  build-essential \
 
 
 
 
18
  libzbar0 \
19
  fish \
20
- ca-certificates && \
21
- rm -rf /var/lib/apt/lists/*
 
 
 
22
 
23
- # Install micromamba
24
- RUN curl -fsSL https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C /usr/local/bin/ --strip-components=1 bin/micromamba
25
-
26
- # Create a user and set permissions
27
- RUN useradd -m -s /bin/bash $USER && \
28
- echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
29
-
30
- # Switch to the non-root user
31
- USER $USER
32
- WORKDIR $HOME
33
-
34
- # Initialize micromamba and create a base environment
35
- RUN micromamba shell init -s bash -p $CONDA_DIR && \
36
- bash -c "source ~/.bashrc && micromamba create -n base -c conda-forge python=3.9 curl build-essential openjdk nodejs fish ffmpeg nmap ca-certificates -y && micromamba clean --all --yes"
37
 
38
  # Install code-server
39
  RUN curl -fsSL https://code-server.dev/install.sh | sh -s -- --version=4.23.0-rc.2
@@ -41,34 +32,57 @@ RUN curl -fsSL https://code-server.dev/install.sh | sh -s -- --version=4.23.0-rc
41
  # Install ollama
42
  RUN curl -fsSL https://ollama.com/install.sh | sh
43
 
 
 
 
 
44
  # Create and set the working directory
45
- RUN mkdir -p $HOME/genz/roop
46
- WORKDIR $HOME/genz/roop
47
 
48
  # Clone the roop repository
49
  RUN git clone https://github.com/s0md3v/roop.git .
50
 
51
  # Change ownership and permissions of the roop directory and its contents
52
- RUN chown -R $USER:$USER $HOME/genz/roop && \
53
- chmod -R u+rwx $HOME/genz/roop
54
 
55
  # Create code-server configuration directory
56
- RUN mkdir -p $HOME/.local/share/code-server/User
57
 
58
  # Add settings.json to enable dark mode
59
  RUN echo '{ \
60
  "workbench.colorTheme": "Default Dark Modern", \
61
  "telemetry.enableTelemetry": true, \
62
  "telemetry.enableCrashReporter": true \
63
- }' > $HOME/.local/share/code-server/User/settings.json
 
 
 
64
 
65
  # Install Python extension for code-server
66
- RUN code-server --install-extension ms-python.python
67
 
68
  # Expose the default code-server port
69
  EXPOSE 8080
70
 
71
- # Start code-server with authentication
72
- CMD ["sh", "-c", "code-server --bind-addr 0.0.0.0:7860 --auth none"]
 
 
 
 
 
 
 
 
 
 
 
73
 
74
- # End of Dockerfile
 
 
 
 
 
 
3
 
4
  # Set environment variables
5
  ENV DEBIAN_FRONTEND=noninteractive
 
 
 
 
 
6
 
7
+ # Install necessary packages
8
  RUN apt-get update && \
9
  apt-get install -y \
10
  curl \
11
  sudo \
12
  build-essential \
13
+ default-jdk \
14
+ default-jre \
15
+ g++ \
16
+ gcc \
17
  libzbar0 \
18
  fish \
19
+ ffmpeg \
20
+ nmap \
21
+ ca-certificates \
22
+ debootstrap \
23
+ curl
24
 
25
+ # Install Node.js (LTS version)
26
+ RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && \
27
+ apt-get install -y nodejs
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  # Install code-server
30
  RUN curl -fsSL https://code-server.dev/install.sh | sh -s -- --version=4.23.0-rc.2
 
32
  # Install ollama
33
  RUN curl -fsSL https://ollama.com/install.sh | sh
34
 
35
+ # Create a user to run code-server
36
+ RUN useradd -m -s /bin/bash coder && \
37
+ echo 'coder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
38
+
39
  # Create and set the working directory
40
+ RUN mkdir -p /home/coder/genz/roop
41
+ WORKDIR /home/coder/genz/roop
42
 
43
  # Clone the roop repository
44
  RUN git clone https://github.com/s0md3v/roop.git .
45
 
46
  # Change ownership and permissions of the roop directory and its contents
47
+ RUN chown -R coder:coder /home/coder/genz/roop && \
48
+ chmod -R u+rwx /home/coder/genz/roop
49
 
50
  # Create code-server configuration directory
51
+ RUN mkdir -p /home/coder/.local/share/code-server/User
52
 
53
  # Add settings.json to enable dark mode
54
  RUN echo '{ \
55
  "workbench.colorTheme": "Default Dark Modern", \
56
  "telemetry.enableTelemetry": true, \
57
  "telemetry.enableCrashReporter": true \
58
+ }' > /home/coder/.local/share/code-server/User/settings.json
59
+
60
+ # Change ownership of the configuration directory
61
+ RUN chown -R coder:coder /home/coder/.local/share/code-server
62
 
63
  # Install Python extension for code-server
64
+ RUN sudo -u coder code-server --install-extension ms-python.python
65
 
66
  # Expose the default code-server port
67
  EXPOSE 8080
68
 
69
+ # Create a minimal Debian system using debootstrap
70
+ RUN mkdir /chroot && \
71
+ debootstrap --variant=minbase buster /chroot http://deb.debian.org/debian/
72
+
73
+ # Set up necessary mounts and devices for chroot
74
+ RUN mount --bind /proc /chroot/proc && \
75
+ mount --bind /sys /chroot/sys && \
76
+ mount --bind /dev /chroot/dev
77
+
78
+ # Create a startup script to initialize chroot and start code-server
79
+ RUN echo '#!/bin/bash\n\
80
+ chroot /chroot /bin/bash -c "cd /home/coder/genz && code-server --bind-addr 0.0.0.0:8080 --auth none"' > /home/coder/start.sh && \
81
+ chmod +x /home/coder/start.sh
82
 
83
+ # Switch to the coder user for running code-server
84
+ USER coder
85
+ WORKDIR /home/coder/genz
86
+
87
+ # Start code-server with authentication
88
+ CMD ["/home/coder/start.sh"]