Team Ai
Apppublic

alanyu2938/java-code-server

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
Dockerfile113 linesDownload Raw Back to root
1FROM mcr.microsoft.com/devcontainers/java:21-bookworm AS base2 3ARG USERNAME=vscode4 5# install curl and clean up to minimize image size6RUN apt-get update && \7    apt-get install -y netcat-openbsd libicu-dev git curl wget vim \8    net-tools iproute2 netcat-traditional dnsutils \9    iputils-ping iptables nmap tcpdump traceroute \10    redis-tools postgresql-client unixodbc-dev odbcinst unixodbc && \11    apt-get clean && \12    rm -rf /var/lib/apt/lists/*13 14ENV HOME=/home/$USERNAME 15 16FROM base AS add_maven17 18USER root19 20ENV MAVEN_VERSION=3.9.1221# Install Maven22RUN wget https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \23    tar -xzvf apache-maven-${MAVEN_VERSION}-bin.tar.gz -C /usr/share && \24    mv /usr/share/apache-maven-${MAVEN_VERSION} /usr/local/maven && \25    rm apache-maven-${MAVEN_VERSION}-bin.tar.gz 26 27USER vscode28 29ENV MAVEN_HOME=/usr/local/maven30ENV PATH=$MAVEN_HOME/bin:$PATH31 32RUN echo 'export MAVEN_HOME=/usr/local/maven' >> /home/vscode/.bashrc && \33    echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> /home/vscode/.bashrc34 35FROM add_maven AS add_nvm36 37USER vscode38 39WORKDIR $HOME40 41# Create a script file sourced by both interactive and non-interactive bash shells42ENV BASH_ENV=$HOME/.bash_env43RUN touch "${BASH_ENV}"44RUN echo '. "${BASH_ENV}"' >> $HOME/.bashrc45 46ENV NODE_VERSION=2047ENV NVM_DIR=$HOME/.nvm48 49RUN mkdir -p $NVM_DIR50RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | PROFILE="${BASH_ENV}" bash \51    && echo node > .nvmrc \52    && . $NVM_DIR/nvm.sh \53    && nvm install $NODE_VERSION \54    && nvm alias default $NODE_VERSION \55    && nvm use default \56    && npm install -g npm \57    && npm install -g yarn \58    && npm install -g firebase-tools59 60FROM add_nvm AS code-server61 62USER vscode63 64RUN curl -fsSL https://code-server.dev/install.sh | sh65 66# Configure code-server settings67RUN mkdir -p ~/.local/share/code-server/User68COPY --chown=vscode:vscode settings.json /home/vscode/.local/share/code-server/User/settings.json69COPY --chown=vscode:vscode extensions extensions70 71# Install extensions72RUN code-server --install-extension vscjava.vscode-maven && \73    code-server --install-extension vscjava.vscode-java-test && \74    code-server --install-extension vscjava.vscode-java-pack && \75    code-server --install-extension vscjava.vscode-java-dependency && \76    code-server --install-extension vscjava.vscode-java-debug && \77    code-server --install-extension vscjava.vscode-gradle && \78    code-server --install-extension vscjava.vscode-spring-initializr && \79    code-server --install-extension vscjava.vscode-spring-boot-dashboard && \80    code-server --install-extension ./extensions/redhat.java-1.51.0-linux-x64.vsix && \81    code-server --install-extension streetsidesoftware.code-spell-checker && \82    code-server --install-extension eamodio.gitlens && \83    code-server --install-extension donjayamanne.githistory && \84    code-server --install-extension redhat.vscode-xml && \85    code-server --install-extension humao.rest-client86 87 88FROM add_nvm AS source-code89 90USER vscode91 92WORKDIR /5d6d8s7893 94RUN git clone https://github.com/alanyu0762/java-interview.git .95 96RUN git checkout v397RUN mvn clean install -DskipTests98 99FROM code-server AS runner100 101USER vscode102 103# Copy source code and built artifacts from source-code stage104COPY --from=source-code --chown=vscode:vscode /5d6d8s78 /workspace105COPY --from=source-code --chown=vscode:vscode /home/vscode/.m2 /home/vscode/.m2106 107WORKDIR $HOME108 109EXPOSE 7860110 111CMD ["code-server", "--bind-addr", "0.0.0.0:7860"]112 113