@@ -11,22 +11,19 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111 curl wget git unzip gnupg ca-certificates software-properties-common \
1212 build-essential apt-transport-https sudo \
1313 python3 python3-venv python3-pip python3-dev \
14- libffi-dev libssl-dev libpq-dev cargo \
15- && rm -rf /var/lib/apt/lists/*
14+ libffi-dev libssl-dev libpq-dev cargo
1615
1716# Node.js 20
1817RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
19- apt-get install -y nodejs && \
20- rm -rf /var/lib/apt/lists/*
18+ apt-get install -y nodejs
2119
22- # .NET SDK 8.0 (update to 9.0 if desired by changing the package name)
23- RUN wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
24- dpkg -i packages-microsoft-prod.deb && rm packages-microsoft-prod.deb && \
25- apt-get update && apt-get install -y dotnet-sdk-8.0 && \
26- rm -rf /var/lib/apt/lists/*
20+ # .NET SDK 9.0
21+ RUN add-apt-repository ppa:dotnet/backports && \
22+ apt-get update && \
23+ apt-get install -y dotnet-sdk-9.0
2724
2825# Go
29- ARG GO_VERSION=1.22.5
26+ ARG GO_VERSION=1.24.6
3027RUN curl -fsSL https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz -o /tmp/go.tgz \
3128 && rm -rf /usr/local/go \
3229 && tar -C /usr/local -xzf /tmp/go.tgz \
@@ -37,10 +34,8 @@ ENV PATH=$GOROOT/bin:$GOPATH/bin:$PATH
3734# quick sanity
3835RUN go version
3936
40- # Java
41-
4237# ---- Java (OpenJDK 21) ----
43- RUN apt-get update && apt-get install -y --no-install-recommends \
38+ RUN apt-get install -y --no-install-recommends \
4439 openjdk-21-jdk \
4540 && rm -rf /var/lib/apt/lists/*
4641ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
@@ -66,16 +61,44 @@ ENV PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
6661
6762# Global Python deps
6863RUN pip install --no-cache-dir --break-system-packages \
69- goodmem_client openai requests python-dotenv
64+ goodmem_client openai requests python-dotenv \
65+ jupyter lab
66+
67+ # Dotnet Interactive (for Jupyter)
68+ RUN dotnet tool install --global Microsoft.dotnet-interactive
69+ ENV PATH="/root/.dotnet/tools:${PATH}"
70+ RUN dotnet interactive jupyter install
71+
72+ # IJavascript (Node.js kernel for Jupyter)
73+ RUN npm config set prefix $HOME
74+ RUN npm install -g ijavascript
75+ ENV PATH="/root/bin:${PATH}"
76+ RUN ijsinstall
77+
78+ # JJava (Java kernel for Jupyter)
79+ RUN curl -fsSL https://github.com/dflib/jjava/releases/download/1.0-a5/jjava-1.0-a5-kernelspec.zip -o /tmp/jjava.zip && \
80+ unzip -q /tmp/jjava.zip -d /tmp/jjava-1.0-a5-kernelspec && \
81+ cd /tmp && \
82+ jupyter kernelspec install jjava-1.0-a5-kernelspec --user --name=java
83+
84+ # GONB (Go kernel for Jupyter)
85+ RUN go install github.com/janpfeifer/gonb@latest && \
86+ go install golang.org/x/tools/cmd/goimports@latest && \
87+ go install golang.org/x/tools/gopls@latest
88+ RUN gonb --install
89+
90+ # APT clean up
91+ RUN rm -rf /var/lib/apt/lists/*
7092
7193# Dev user
72- RUN useradd -m -s /bin/bash vscode && \
73- echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode-nopasswd && \
74- chmod 0440 /etc/sudoers.d/vscode-nopasswd && \
75- mkdir -p /home/vscode/.goodmem/data/database && \
76- chown -R vscode:vscode /home/vscode/.goodmem
77-
78- USER vscode
94+ # EDIT: DISABLED for now to avoid permission issues with mounted volumes
95+ # RUN useradd -m -s /bin/bash vscode && \
96+ # echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode-nopasswd && \
97+ # chmod 0440 /etc/sudoers.d/vscode-nopasswd && \
98+ # mkdir -p /home/vscode/.goodmem/data/database && \
99+ # chown -R vscode:vscode /home/vscode/.goodmem
100+
101+ # USER vscode
79102
80103# Use Codespaces default; the repo will be mounted at /workspaces/<repo>
81104WORKDIR /workspaces
0 commit comments