<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DevContainer Template :: Ay Docs</title>
    <link>https://ops.docs.72602.space/kubernetes/conatiner/template/devcontainer/index.html</link>
    <description>Java 21 + Go 1.24 Python 3.11 + CUDA 120</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 07 Mar 2024 15:00:59 +0800</lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/kubernetes/conatiner/template/devcontainer/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Java 21 &#43; Go 1.24</title>
      <link>https://ops.docs.72602.space/kubernetes/conatiner/template/devcontainer/java21_go1.24/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/kubernetes/conatiner/template/devcontainer/java21_go1.24/index.html</guid>
      <description>prepare .devcontainer.json { &#34;name&#34;: &#34;Go &amp; Java DevContainer&#34;, &#34;build&#34;: { &#34;dockerfile&#34;: &#34;Dockerfile&#34; }, &#34;mounts&#34;: [ &#34;source=/root/.kube/config,target=/root/.kube/config,type=bind&#34;, &#34;source=/root/.minikube/profiles/minikube/client.crt,target=/root/.minikube/profiles/minikube/client.crt,type=bind&#34;, &#34;source=/root/.minikube/profiles/minikube/client.key,target=/root/.minikube/profiles/minikube/client.key,type=bind&#34;, &#34;source=/root/.minikube/ca.crt,target=/root/.minikube/ca.crt,type=bind&#34; ], &#34;customizations&#34;: { &#34;vscode&#34;: { &#34;extensions&#34;: [ &#34;golang.go&#34;, &#34;vscjava.vscode-java-pack&#34;, &#34;redhat.java&#34;, &#34;vscjava.vscode-maven&#34;, &#34;Alibaba-Cloud.tongyi-lingma&#34;, &#34;vscjava.vscode-java-debug&#34;, &#34;vscjava.vscode-java-dependency&#34;, &#34;vscjava.vscode-java-test&#34; ] } }, &#34;remoteUser&#34;: &#34;root&#34;, &#34;postCreateCommand&#34;: &#34;go version &amp;&amp; java -version &amp;&amp; mvn -v&#34; } prepare Dockerfile FROM m.daocloud.io/docker.io/ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update &amp;&amp; \ apt-get install -y --no-install-recommends \ ca-certificates \ curl \ git \ wget \ gnupg \ vim \ lsb-release \ apt-transport-https \ &amp;&amp; apt-get clean \ &amp;&amp; rm -rf /var/lib/apt/lists/* # install OpenJDK 21 RUN mkdir -p /etc/apt/keyrings &amp;&amp; \ wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /etc/apt/keyrings/adoptium.gpg &amp;&amp; \ echo &#34;deb [signed-by=/etc/apt/keyrings/adoptium.gpg arch=amd64] https://packages.adoptium.net/artifactory/deb $(awk -F= &#39;/^VERSION_CODENAME/{print$2}&#39; /etc/os-release) main&#34; | tee /etc/apt/sources.list.d/adoptium.list &gt; /dev/null &amp;&amp; \ apt-get update &amp;&amp; \ apt-get install -y temurin-21-jdk &amp;&amp; \ apt-get clean &amp;&amp; \ rm -rf /var/lib/apt/lists/* # set java env ENV JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64 # install maven ARG MAVEN_VERSION=3.9.10 RUN wget https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz -O /tmp/maven.tar.gz &amp;&amp; \ mkdir -p /opt/maven &amp;&amp; \ tar -C /opt/maven -xzf /tmp/maven.tar.gz --strip-components=1 &amp;&amp; \ rm /tmp/maven.tar.gz ENV MAVEN_HOME=/opt/maven ENV PATH=&#34;${MAVEN_HOME}/bin:${PATH}&#34; # install go 1.24.4 ARG GO_VERSION=1.24.4 RUN wget https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz -O /tmp/go.tar.gz &amp;&amp; \ tar -C /usr/local -xzf /tmp/go.tar.gz &amp;&amp; \ rm /tmp/go.tar.gz # set go env ENV GOROOT=/usr/local/go ENV GOPATH=/go ENV PATH=&#34;${GOROOT}/bin:${GOPATH}/bin:${PATH}&#34; # install other binarys ARG KUBECTL_VERSION=v1.33.0 RUN wget https://files.m.daocloud.io/dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl -O /tmp/kubectl &amp;&amp; \ chmod u+x /tmp/kubectl &amp;&amp; \ mv -f /tmp/kubectl /usr/local/bin/kubectl ARG HELM_VERSION=v3.13.3 RUN wget https://files.m.daocloud.io/get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz -O /tmp/helm-${HELM_VERSION}-linux-amd64.tar.gz &amp;&amp; \ mkdir -p /opt/helm &amp;&amp; \ tar -C /opt/helm -xzf /tmp/helm-${HELM_VERSION}-linux-amd64.tar.gz &amp;&amp; \ rm /tmp/helm-${HELM_VERSION}-linux-amd64.tar.gz ENV HELM_HOME=/opt/helm/linux-amd64 ENV PATH=&#34;${HELM_HOME}:${PATH}&#34; USER root WORKDIR /workspace</description>
    </item>
    <item>
      <title>Python 3.11 &#43; CUDA 120</title>
      <link>https://ops.docs.72602.space/kubernetes/conatiner/template/devcontainer/python3_11_with_cuda/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/kubernetes/conatiner/template/devcontainer/python3_11_with_cuda/index.html</guid>
      <description>prepare .devcontainer.json { &#34;name&#34;: &#34;DALI Learning Environment&#34;, &#34;build&#34;: { &#34;dockerfile&#34;: &#34;Dockerfile&#34;, &#34;context&#34;: &#34;..&#34;, &#34;args&#34;: { &#34;VARIANT&#34;: &#34;3.11&#34;, &#34;HTTP_PROXY&#34;: &#34;&#34;, &#34;HTTPS_PROXY&#34;: &#34;&#34;, &#34;http_proxy&#34;: &#34;&#34;, &#34;https_proxy&#34;: &#34;&#34; } }, &#34;forwardPorts&#34;: [8000], &#34;portsAttributes&#34;: { &#34;8000&#34;: { &#34;label&#34;: &#34;HTTP Server&#34;, &#34;protocol&#34;: &#34;http&#34;, &#34;onAutoForward&#34;: &#34;notify&#34; } }, &#34;customizations&#34;: { &#34;vscode&#34;: { &#34;extensions&#34;: [ &#34;ms-python.python&#34;, &#34;ms-python.vscode-pylance&#34;, &#34;ms-python.debugpy&#34; ], &#34;settings&#34;: { &#34;python.defaultInterpreterPath&#34;: &#34;/usr/bin/python&#34;, &#34;files.exclude&#34;: { &#34;**/__pycache__&#34;: true, &#34;**/*.pyc&#34;: true } } } }, &#34;postCreateCommand&#34;: &#34;bash .devcontainer/post-create.sh&#34;, &#34;remoteUser&#34;: &#34;vscode&#34;, &#34;runArgs&#34;: [ &#34;-p&#34;, &#34;0.0.0.0:8000:8000&#34;, &#34;--device=/dev/nvidiactl&#34;, &#34;--device=/dev/nvidia0&#34;, &#34;--device=/dev/nvidia-uvm&#34;, &#34;--device=/dev/nvidia-uvm-tools&#34;, &#34;--ipc=host&#34;, &#34;--ulimit&#34;, &#34;memlock=-1&#34;, &#34;--ulimit&#34;, &#34;stack=67108864&#34;, &#34;--env&#34;, &#34;LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/lib/x86_64-linux-gnu:/host/usr/lib/x86_64-linux-gnu&#34; ], &#34;mounts&#34;: [ &#34;type=bind,src=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,readonly&#34;, &#34;type=bind,src=https://ops.docs.72602.space/usr/lib/x86_64-linux-gnu,target=/host/usr/lib/x86_64-linux-gnu,readonly&#34;, &#34;type=bind,src=https://ops.docs.72602.space/usr/bin/nvidia-smi,target=/usr/bin/nvidia-smi,readonly&#34;, &#34;type=bind,src=https://ops.docs.72602.space/usr/bin/nvidia-debugdump,target=/usr/bin/nvidia-debugdump,readonly&#34; ], &#34;containerEnv&#34;: { &#34;CUDA_VISIBLE_DEVICES&#34;: &#34;0&#34;, &#34;NVIDIA_VISIBLE_DEVICES&#34;: &#34;all&#34;, &#34;NVIDIA_DRIVER_CAPABILITIES&#34;: &#34;compute,utility&#34;, &#34;HTTP_PROXY&#34;: &#34;&#34;, &#34;HTTPS_PROXY&#34;: &#34;&#34;, &#34;http_proxy&#34;: &#34;&#34;, &#34;https_proxy&#34;: &#34;&#34;, &#34;NO_PROXY&#34;: &#34;&#34;, &#34;no_proxy&#34;: &#34;&#34; }, &#34;description&#34;: &#34;NVIDIA DALI MCP开发环境 - GPU支持的轻量级镜像&#34; } prepare Dockerfile # Use runtime image instead of devel to reduce size (4GB vs 10GB) FROM m.daocloud.io/docker.io/nvidia/cuda:12.1.0-cudnn8-runtime-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Shanghai # Add deadsnakes PPA for Python 3.11 and install base dependencies # Clear proxy settings to avoid connection issues during build RUN unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy &amp;&amp; \ apt-get update &amp;&amp; apt-get install -y --no-install-recommends \ software-properties-common \ curl \ &amp;&amp; add-apt-repository ppa:deadsnakes/ppa -y &amp;&amp; \ apt-get update &amp;&amp; apt-get install -y --no-install-recommends \ python3.11 \ python3.11-dev \ python3.11-distutils \ python3-pip \ git \ wget \ &amp;&amp; rm -rf /var/lib/apt/lists/* # Install Node.js (LTS) for Claude CLI RUN unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy &amp;&amp; \ curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - &amp;&amp; \ apt-get install -y --no-install-recommends nodejs &amp;&amp; \ rm -rf /var/lib/apt/lists/* # Set NVIDIA library paths ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH} ENV CUDA_HOME=/usr/local/cuda ENV PATH=${CUDA_HOME}/bin:${PATH} ENV NVIDIA_VISIBLE_DEVICES=all ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility # Set Python 3.11 as default version RUN unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy &amp;&amp; \ update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1 &amp;&amp; \ update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 # Upgrade pip RUN unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy &amp;&amp; \ python -m pip install --no-cache-dir --upgrade pip setuptools wheel # Install DALI and minimal packages for MCP development RUN unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy &amp;&amp; \ pip install --no-cache-dir \ --extra-index-url https://pypi.nvidia.com \ nvidia-dali-cuda120 \ numpy \ ipython # Create non-root user RUN useradd -m -s /bin/bash vscode &amp;&amp; \ mkdir -p /workspace &amp;&amp; \ chown -R vscode:vscode /workspace WORKDIR /workspace USER vscode CMD [&#34;/bin/bash&#34;] post-create.sh #!/bin/bash # Clear proxy settings (should already be cleared by containerEnv, but double-check) unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy # Install MCP SDK and minimal dependencies pip install --no-cache-dir \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ mcp \ anthropic curl -fsSL https://claude.ai/install.sh | bash echo &#39;export PATH=&#34;$HOME/.local/bin:$PATH&#34;&#39; &gt;&gt; ~/.bashrc &amp;&amp; source ~/.bashrc # Create working directories mkdir -p /workspace/scripts echo &#34;✅ DALI environment setup completed!&#34;</description>
    </item>
  </channel>
</rss>