Skip to content

Commit 9fae28d

Browse files
committed
added ruby support
1 parent c6dd986 commit 9fae28d

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

template/Dockerfile

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ ENV PIP_DEFAULT_TIMEOUT=100 \
1313
JUPYTER_CONFIG_PATH="/root/.jupyter" \
1414
IPYTHON_CONFIG_PATH="/root/.ipython" \
1515
SERVER_PATH="/root/.server" \
16-
R_VERSION=4.4.2
16+
R_VERSION=4.4.2 \
17+
RUBY_VERSION=3.4.3
1718

1819
ENV R_HOME=/opt/R/${R_VERSION} \
19-
JAVA_HOME=/opt/java/openjdk
20+
JAVA_HOME=/opt/java/openjdk \
21+
RUBY_HOME=/opt/ruby/${RUBY_VERSION}
2022

2123
# Install Jupyter
2224
COPY ./requirements.txt requirements.txt
@@ -78,5 +80,16 @@ RUN wget https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3
7880
unzip ijava-1.3.0.zip && \
7981
python install.py --sys-prefix
8082

83+
# Install Ruby using ruby-build
84+
RUN git clone https://github.com/rbenv/ruby-build.git ~/.ruby-build
85+
RUN ~/.ruby-build/bin/ruby-build ${RUBY_VERSION} ${RUBY_HOME}
86+
ENV PATH="${RUBY_HOME}/bin:${PATH}"
87+
ENV PATH="/root/.local/share/gem/ruby/${RUBY_VERSION%.*}.0/bin:${PATH}"
88+
89+
# Install IRuby
90+
RUN gem install --user-install rubygems-requirements-system && \
91+
gem install --user-install iruby && \
92+
iruby register --force
93+
8194
# Setup entrypoint for local development
8295
ENTRYPOINT $JUPYTER_CONFIG_PATH/start-up.sh

template/server/contexts.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ def normalize_language(language: Optional[str]) -> str:
2929
if language == "ts":
3030
return "typescript"
3131

32+
if language == "ruby" or language == "rb":
33+
return "ruby3"
34+
3235
return language
3336

3437

template/test.Dockerfile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ ENV PIP_DEFAULT_TIMEOUT=100 \
1616
PIP_NO_CACHE_DIR=1 \
1717
JUPYTER_CONFIG_PATH="/root/.jupyter" \
1818
IPYTHON_CONFIG_PATH="/root/.ipython" \
19-
SERVER_PATH="/root/.server"
19+
SERVER_PATH="/root/.server" \
20+
RUBY_VERSION=3.4.3
21+
22+
ENV RUBY_HOME=/opt/ruby/${RUBY_VERSION}
2023

2124
# Install Jupyter
2225
COPY ./template/requirements.txt requirements.txt
@@ -36,6 +39,17 @@ RUN chmod +x /usr/bin/deno
3639
RUN deno jupyter --unstable --install
3740
COPY ./template/deno.json /root/.local/share/jupyter/kernels/deno/kernel.json
3841

42+
# Install Ruby using ruby-build
43+
RUN git clone https://github.com/rbenv/ruby-build.git ~/.ruby-build
44+
RUN ~/.ruby-build/bin/ruby-build ${RUBY_VERSION} ${RUBY_HOME}
45+
ENV PATH="${RUBY_HOME}/bin:${PATH}"
46+
ENV PATH="/root/.local/share/gem/ruby/${RUBY_VERSION%.*}.0/bin:${PATH}"
47+
48+
# Install IRuby
49+
RUN gem install --user-install rubygems-requirements-system && \
50+
gem install --user-install iruby && \
51+
iruby register --force
52+
3953
# Create separate virtual environment for server
4054
RUN python -m venv $SERVER_PATH/.venv
4155

0 commit comments

Comments
 (0)