proti0070 commited on
Commit
06ff972
·
verified ·
1 Parent(s): c6eb469

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +93 -0
Dockerfile ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM ubuntu:22.04
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+ ENV TZ=UTC
5
+
6
+ # Install all necessary dependencies
7
+ RUN apt-get update && apt-get install -y \
8
+ # Base
9
+ wget curl git unzip zip \
10
+ openjdk-17-jdk \
11
+ # X11 and GUI
12
+ xvfb x11vnc fluxbox \
13
+ libxrender1 libxtst6 libxi6 libfontconfig1 \
14
+ libgtk-3-0 libnss3 libxss1 libasound2 libgbm1 \
15
+ # Web server
16
+ nginx \
17
+ # Process manager
18
+ supervisor \
19
+ # Terminal
20
+ tini \
21
+ # Node.js for web IDE server
22
+ nodejs npm \
23
+ # Additional useful tools
24
+ nano vim htop \
25
+ && rm -rf /var/lib/apt/lists/*
26
+
27
+ # Java setup
28
+ ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
29
+ ENV PATH=$PATH:$JAVA_HOME/bin
30
+
31
+ # Download Android Studio
32
+ RUN wget https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2022.3.1.19/android-studio-2022.3.1.19-linux.tar.gz && \
33
+ tar -xzf android-studio-2022.3.1.19-linux.tar.gz -C /opt/ && \
34
+ rm android-studio-2022.3.1.19-linux.tar.gz
35
+
36
+ # Android SDK
37
+ RUN wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \
38
+ mkdir -p /opt/android-sdk/cmdline-tools && \
39
+ unzip commandlinetools-linux-9477386_latest.zip -d /opt/android-sdk/cmdline-tools/ && \
40
+ mv /opt/android-sdk/cmdline-tools/cmdline-tools /opt/android-sdk/cmdline-tools/latest && \
41
+ rm commandlinetools-linux-9477386_latest.zip
42
+
43
+ # Install platform tools
44
+ RUN wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip && \
45
+ unzip platform-tools-latest-linux.zip -d /opt/android-sdk/ && \
46
+ rm platform-tools-latest-linux.zip
47
+
48
+ # Environment variables
49
+ ENV ANDROID_HOME=/opt/android-sdk
50
+ ENV PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools
51
+
52
+ # Accept licenses
53
+ RUN yes | /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses || true
54
+
55
+ # Install essential SDK components
56
+ RUN /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager \
57
+ "platform-tools" \
58
+ "platforms;android-33" \
59
+ "build-tools;33.0.0"
60
+
61
+ # Install noVNC
62
+ RUN git clone https://github.com/novnc/noVNC.git /opt/novnc && \
63
+ git clone https://github.com/novnc/websockify.git /opt/novnc/utils/websockify
64
+
65
+ # Install web-based terminal
66
+ RUN wget https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64 -O /usr/local/bin/ttyd && \
67
+ chmod +x /usr/local/bin/ttyd
68
+
69
+ # Setup workspace
70
+ WORKDIR /app
71
+
72
+ # Copy application files
73
+ COPY package.json server.js ./
74
+ COPY public/ ./public/
75
+ COPY nginx.conf /etc/nginx/nginx.conf
76
+ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
77
+ COPY start.sh /start.sh
78
+
79
+ # Install Node dependencies
80
+ RUN npm install
81
+
82
+ # Create necessary directories
83
+ RUN mkdir -p /workspace/projects /workspace/.android
84
+
85
+ # Set permissions
86
+ RUN chmod +x /start.sh && \
87
+ chmod -R 777 /workspace
88
+
89
+ # HF Spaces port
90
+ EXPOSE 7860
91
+
92
+ ENTRYPOINT ["/usr/bin/tini", "--"]
93
+ CMD ["/start.sh"]