From 9812e9c07fc3673e78de2e0111a34ab64ad5a214 Mon Sep 17 00:00:00 2001 From: "David J. Malan" Date: Sat, 9 May 2026 20:18:05 -0400 Subject: [PATCH 1/3] added Go --- Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Dockerfile b/Dockerfile index ac5c737..357dfe8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,18 @@ RUN apt update && \ curl +# Install Go 1.26.x +# https://go.dev/dl/ +RUN cd /tmp && \ + curl --remote-name --location https://go.dev/dl/go1.26.3.linux-${BUILDARCH}.tar.gz && \ + tar xzf go1.26.3.linux-${BUILDARCH}.tar.gz && \ + rm --force go1.26.3.linux-${BUILDARCH}.tar.gz && \ + mv go /opt/ && \ + mkdir --parent /opt/bin && \ + ln --symbolic /opt/go/bin/* /opt/bin/ && \ + chmod a+rx /opt/bin/* + + # Install Java 25.x # https://jdk.java.net/25/ RUN cd /tmp && \ From 8bb059fa34ccc180ef2001adf28865805f0c8135 Mon Sep 17 00:00:00 2001 From: "David J. Malan" Date: Sat, 9 May 2026 20:31:24 -0400 Subject: [PATCH 2/3] adds GitHub CLI --- Dockerfile | 58 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index 357dfe8..fb27278 100644 --- a/Dockerfile +++ b/Dockerfile @@ -237,6 +237,31 @@ RUN curl https://packagecloud.io/install/repositories/cs50/repo/script.deb.sh | libcs50 +# Install Python packages +RUN pip3 install --no-cache-dir \ + autopep8 \ + cachelib \ + "check50<4" \ + cli50 \ + compare50 \ + cs50==9.4.0 \ + Flask \ + Flask-Session \ + help50 \ + pytest \ + render50 \ + setuptools \ + "style50>=3.0.0" \ + "submit50<4" \ + lib50 + + +# Install BFG +# https://rtyley.github.io/bfg-repo-cleaner/ +RUN mkdir --parents /opt/share && \ + curl --location https://repo1.maven.org/maven2/com/madgag/bfg/1.15.0/bfg-1.15.0.jar --output /opt/share/bfg.jar + + # Install Docker CLI # https://docs.docker.com/engine/install/ubuntu/ # https://docs.docker.com/engine/install/linux-postinstall/ @@ -255,30 +280,17 @@ RUN apt update && \ groupadd docker -# Install BFG -# https://rtyley.github.io/bfg-repo-cleaner/ -RUN mkdir --parents /opt/share && \ - curl --location https://repo1.maven.org/maven2/com/madgag/bfg/1.15.0/bfg-1.15.0.jar --output /opt/share/bfg.jar - +# Install GitHub CLI +# https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian +RUN apt update && \ + cd /tmp && \ + curl --remote-name https://cli.github.com/packages/githubcli-archive-keyring.gpg && \ + mv githubcli-archive-keyring.gpg /etc/apt/keyrings/ && \ + mkdir -p -m 755 /etc/apt/sources.list.d && \ + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null && \ + apt update && \ + apt install gh --yes -# Install Python packages -RUN pip3 install --no-cache-dir \ - autopep8 \ - cachelib \ - "check50<4" \ - cli50 \ - compare50 \ - cs50==9.4.0 \ - Flask \ - Flask-Session \ - help50 \ - pytest \ - render50 \ - setuptools \ - "style50>=3.0.0" \ - "submit50<4" \ - lib50 - # Copy files to image COPY ./etc /etc From cd6b8c475ca23c2a1cf5b83a8c2cfdb09197df85 Mon Sep 17 00:00:00 2001 From: "David J. Malan" Date: Sat, 9 May 2026 23:17:22 -0400 Subject: [PATCH 3/3] fixes per @copilot --- Dockerfile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index fb27278..8af9cfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -282,14 +282,12 @@ RUN apt update && \ # Install GitHub CLI # https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian -RUN apt update && \ - cd /tmp && \ +RUN cd /tmp && \ curl --remote-name https://cli.github.com/packages/githubcli-archive-keyring.gpg && \ mv githubcli-archive-keyring.gpg /etc/apt/keyrings/ && \ - mkdir -p -m 755 /etc/apt/sources.list.d && \ - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null && \ - apt update && \ - apt install gh --yes + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null && \ + apt update && \ + apt install gh --no-install-recommends --no-install-suggests --yes # Copy files to image