|
| 1 | +FROM debian:bookworm-slim |
| 2 | + |
| 3 | +ARG TARGETARCH |
| 4 | + |
| 5 | +ENV PATH=~/bin:~/.local/bin:$PATH |
| 6 | +ENV GH_VERSION=2.83.1 |
| 7 | + |
| 8 | +# INSTALLATION ################################################################# |
| 9 | +RUN apt update && \ |
| 10 | + apt dist-upgrade -y |
| 11 | + |
| 12 | +# DEPENDENCIES ################################################################# |
| 13 | +RUN apt install -y \ |
| 14 | + wget \ |
| 15 | + curl \ |
| 16 | + git \ |
| 17 | + ca-certificates \ |
| 18 | + gnupg \ |
| 19 | + lsb-release \ |
| 20 | + nano && \ |
| 21 | + # CLEAN UP ################################################################# |
| 22 | + apt-get clean -y && \ |
| 23 | + apt-get autoclean -y && \ |
| 24 | + apt-get autoremove -y && \ |
| 25 | + rm -rf /var/lib/apt/lists/* /var/lib/log/* /tmp/* /var/tmp/* |
| 26 | + |
| 27 | +# NVM ########################################################################## |
| 28 | +RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && \ |
| 29 | + export NVM_DIR="$HOME/.nvm" && \ |
| 30 | + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ |
| 31 | + nvm install 22 && \ |
| 32 | + nvm use 22 && \ |
| 33 | + nvm alias default 22 && \ |
| 34 | + echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \ |
| 35 | + echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc && \ |
| 36 | + echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bashrc |
| 37 | + |
| 38 | +ENV NVM_DIR=/root/.nvm |
| 39 | +RUN export NVM_DIR=/root/.nvm && \ |
| 40 | + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ |
| 41 | + NODE_PATH=$(find $NVM_DIR/versions/node -maxdepth 1 -type d -name "v22*" | head -1) && \ |
| 42 | + ln -sf $NODE_PATH/bin/node /usr/local/bin/node && \ |
| 43 | + ln -sf $NODE_PATH/bin/npm /usr/local/bin/npm && \ |
| 44 | + ln -sf $NODE_PATH/bin/npx /usr/local/bin/npx |
| 45 | + |
| 46 | +# CLAUDE ####################################################################### |
| 47 | +RUN curl -fsSL https://claude.ai/install.sh | bash |
| 48 | + |
| 49 | +# GITHUB CLI ################################################################### |
| 50 | +RUN ARCH=$(case ${TARGETARCH} in \ |
| 51 | + amd64) echo "linux_amd64" ;; \ |
| 52 | + arm64) echo "linux_arm64" ;; \ |
| 53 | + arm) echo "linux_armv6" ;; \ |
| 54 | + *) echo "linux_amd64" ;; \ |
| 55 | + esac) && \ |
| 56 | + curl -OL https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_${ARCH}.tar.gz && \ |
| 57 | + tar -xvf gh_${GH_VERSION}_${ARCH}.tar.gz && \ |
| 58 | + rm gh_${GH_VERSION}_${ARCH}.tar.gz && \ |
| 59 | + mv gh_${GH_VERSION}_${ARCH}/bin/gh /usr/local/bin |
| 60 | + |
| 61 | +# WORKDIR ###################################################################### |
| 62 | +WORKDIR /workspace |
| 63 | + |
| 64 | +CMD ["/bin/bash"] |
0 commit comments