|
| 1 | +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.238.0/containers/java/.devcontainer/base.Dockerfile |
| 2 | + |
| 3 | +# [Choice] Java version (use -bullseye variants on local arm64/Apple Silicon): 11, 17, 11-bullseye, 17-bullseye, 11-buster, 17-buster |
| 4 | +ARG VARIANT="21-bullseye" |
| 5 | +FROM mcr.microsoft.com/vscode/devcontainers/java:1.1.0-${VARIANT} |
| 6 | + |
| 7 | +# [Option] Install Maven |
| 8 | +ARG INSTALL_MAVEN="false" |
| 9 | +ARG MAVEN_VERSION="" |
| 10 | +# [Option] Install Gradle |
| 11 | +ARG INSTALL_GRADLE="false" |
| 12 | +ARG GRADLE_VERSION="" |
| 13 | +RUN if [ "${INSTALL_MAVEN}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/sdkman/bin/sdkman-init.sh && sdk install maven \"${MAVEN_VERSION}\""; fi \ |
| 14 | + && if [ "${INSTALL_GRADLE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/sdkman/bin/sdkman-init.sh && sdk install gradle \"${GRADLE_VERSION}\""; fi |
| 15 | + |
| 16 | +# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 |
| 17 | +ARG NODE_VERSION="none" |
| 18 | +RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi |
| 19 | + |
| 20 | +# Install essential utilities |
| 21 | +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ |
| 22 | + && apt-get install -y --no-install-recommends \ |
| 23 | + curl \ |
| 24 | + git \ |
| 25 | + unzip \ |
| 26 | + vim \ |
| 27 | + wget \ |
| 28 | + && apt-get clean && rm -rf /var/lib/apt/lists/* |
| 29 | + |
| 30 | +# Set default workspace directory |
| 31 | +WORKDIR /workspace |
| 32 | + |
| 33 | +# Install Python and Pip |
| 34 | +ARG INSTALL_PYTHON="true" |
| 35 | +ARG PYTHON_VERSION="3.9" |
| 36 | +RUN if [ "${INSTALL_PYTHON}" = "true" ]; then \ |
| 37 | + apt-get update && apt-get install -y python${PYTHON_VERSION} python3-pip \ |
| 38 | + && apt-get clean && rm -rf /var/lib/apt/lists/*; \ |
| 39 | + fi |
| 40 | + |
| 41 | +# Set environment variables |
| 42 | +ENV JAVA_HOME=/usr/local/sdkman/candidates/java/current |
| 43 | +ENV MAVEN_HOME=/usr/local/sdkman/candidates/maven/current |
| 44 | +ENV GRADLE_HOME=/usr/local/sdkman/candidates/gradle/current |
| 45 | + |
| 46 | +# [Optional] Install global node packages. |
| 47 | +# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1 |
0 commit comments