File size: 4,847 Bytes
f144e5d
8efd4a1
 
f144e5d
bbfd20c
8efd4a1
f144e5d
23d8e99
f144e5d
8efd4a1
 
23d8e99
8efd4a1
bbfd20c
 
8efd4a1
bbfd20c
6e129d1
bbfd20c
 
 
 
 
 
 
 
 
6e129d1
 
bbfd20c
7506c94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8efd4a1
4e938e9
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# Ubuntu base image
FROM ubuntu:latest

# Set working directory
WORKDIR /root

# Install system dependencies
RUN apt update && apt install -y \
    curl wget git unzip tar build-essential software-properties-common \
    python3 python3-pip python3-venv \
    openjdk-17-jdk \
    && apt clean && rm -rf /var/lib/apt/lists/*

# Install NVM
RUN curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

# Set NVM environment variables
ENV NVM_DIR="/root/.nvm"
ENV PATH="$NVM_DIR/versions/node/v22.13.1/bin:$PATH"

# Install Node.js using NVM
RUN bash -c 'source $NVM_DIR/nvm.sh && nvm install --lts && nvm use --lts'

# Ensure Node.js is available in future sessions
RUN echo 'export NVM_DIR="/root/.nvm"' >> /root/.bashrc && \
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> /root/.bashrc && \
    echo 'export PATH="$NVM_DIR/versions/node/$(nvm current)/bin:$PATH"' >> /root/.bashrc

# Verify Node.js installation
RUN node -v && npm -v
# Install Go
RUN wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz && \
    tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz && \
    rm go1.22.0.linux-amd64.tar.gz
ENV PATH="/usr/local/go/bin:$PATH"

# Install Rust
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin:$PATH"

# Install Ruby
RUN apt install -y ruby-full

# Install PHP
RUN apt install -y php-cli

# Install Lua
RUN apt install -y lua5.4

# Install Perl
RUN apt install -y perl

# Install Swift
RUN wget https://download.swift.org/swift-5.10-release/ubuntu2204/swift-5.10-RELEASE/swift-5.10-RELEASE-ubuntu22.04.tar.gz && \
    tar -xzf swift-5.10-RELEASE-ubuntu22.04.tar.gz -C /usr/local/ && \
    rm swift-5.10-RELEASE-ubuntu22.04.tar.gz
ENV PATH="/usr/local/swift-5.10-RELEASE-ubuntu22.04/usr/bin:$PATH"

# Install Haskell
RUN apt install -y haskell-platform

# Install Kotlin
RUN curl -s https://get.sdkman.io | bash && \
    source "$HOME/.sdkman/bin/sdkman-init.sh" && \
    sdk install kotlin

# Install Scala
RUN wget https://downloads.lightbend.com/scala/2.13.12/scala-2.13.12.tgz && \
    tar -xzf scala-2.13.12.tgz -C /usr/local/ && \
    rm scala-2.13.12.tgz
ENV PATH="/usr/local/scala-2.13.12/bin:$PATH"

# Install Julia
RUN wget https://julialang-s3.julialang.org/bin/linux/x64/1.10/julia-1.10.2-linux-x86_64.tar.gz && \
    tar -xzf julia-1.10.2-linux-x86_64.tar.gz -C /usr/local/ && \
    rm julia-1.10.2-linux-x86_64.tar.gz
ENV PATH="/usr/local/julia-1.10.2/bin:$PATH"

# Install Dart
RUN wget https://storage.googleapis.com/dart-archive/channels/stable/release/latest/sdk/dartsdk-linux-x64-release.zip && \
    unzip dartsdk-linux-x64-release.zip -d /usr/local/ && \
    rm dartsdk-linux-x64-release.zip
ENV PATH="/usr/local/dart-sdk/bin:$PATH"

# Install TCL
RUN apt install -y tcl

# Install Racket
RUN wget https://mirror.racket-lang.org/installers/8.9/racket-8.9-x86_64-linux.sh && \
    chmod +x racket-8.9-x86_64-linux.sh && \
    ./racket-8.9-x86_64-linux.sh --in-place --dest /usr/local/racket && \
    rm racket-8.9-x86_64-linux.sh
ENV PATH="/usr/local/racket/bin:$PATH"

# Install Nim
RUN curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y
ENV PATH="/root/.nimble/bin:$PATH"

# Install Vala
RUN apt install -y valac

# Install Zig
RUN wget https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz && \
    tar -xf zig-linux-x86_64-0.12.0.tar.xz -C /usr/local/ && \
    rm zig-linux-x86_64-0.12.0.tar.xz
ENV PATH="/usr/local/zig-linux-x86_64-0.12.0:$PATH"

# Install Erlang
RUN apt install -y erlang

# Install Elixir
RUN wget https://github.com/elixir-lang/elixir/releases/download/v1.16.1/Precompiled.zip && \
    unzip Precompiled.zip -d /usr/local/elixir && \
    rm Precompiled.zip
ENV PATH="/usr/local/elixir/bin:$PATH"

# Install Dart
RUN wget https://storage.googleapis.com/dart-archive/channels/stable/release/latest/sdk/dartsdk-linux-x64-release.zip && \
    unzip dartsdk-linux-x64-release.zip -d /usr/local/ && \
    rm dartsdk-linux-x64-release.zip
ENV PATH="/usr/local/dart-sdk/bin:$PATH"

# Install Fish Shell
RUN apt install -y fish

# Install Chapel
RUN wget https://github.com/chapel-lang/chapel/releases/download/1.33.0/chapel-1.33.0-x86_64-linux.tar.gz && \
    tar -xzf chapel-1.33.0-x86_64-linux.tar.gz -C /usr/local/ && \
    rm chapel-1.33.0-x86_64-linux.tar.gz
ENV PATH="/usr/local/chapel-1.33.0/bin:$PATH"

# Install Free Pascal Compiler (FPC)
RUN apt install -y fpc

# Install D (Dlang)
RUN wget https://downloads.dlang.org/releases/2.x/2.105.0/dmd.2.105.0.linux.tar.xz && \
    tar -xJf dmd.2.105.0.linux.tar.xz -C /usr/local/ && \
    rm dmd.2.105.0.linux.tar.xz
ENV PATH="/usr/local/dmd2/linux/bin64:$PATH"

# Clean up APT cache
RUN apt clean && rm -rf /var/lib/apt/lists/*

# Expose port for HTTP server
EXPOSE 7860

# Run Python HTTP server on port 7860
CMD ["python3", "-m", "http.server", "7860"]