From 32f226e07fe0854755444fd4a0d683b0af9c0c7a Mon Sep 17 00:00:00 2001 From: Chuck Lantz Date: Thu, 25 Apr 2019 12:28:22 -0700 Subject: [PATCH 1/2] Normalize names, deal with debconf warnings, disable git warning for java 12 --- .../.devcontainer/Dockerfile | 17 +++++----- containers/java-11/.devcontainer/Dockerfile | 10 ++++-- containers/java-11/README.md | 2 +- containers/java-12/.devcontainer/Dockerfile | 8 +++-- .../.devcontainer/settings.vscode.json | 3 ++ containers/java-12/README.md | 2 +- .../java-8-maven/.devcontainer/Dockerfile | 15 --------- .../.devcontainer/devcontainer.json | 8 ----- containers/java-8/.devcontainer/Dockerfile | 31 +++++++++++++++++++ .../java-8/.devcontainer/devcontainer.json | 7 +++++ .../{java-8-maven => java-8}/.npmignore | 0 .../.vscode/launch.json | 0 containers/{java-8-maven => java-8}/README.md | 12 +++---- .../test-project/.classpath | 0 .../test-project/.gitignore | 0 .../test-project/.project | 0 .../.settings/org.eclipse.jdt.apt.core.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../test-project/pom.xml | 0 .../src/main/java/com/mycompany/app/App.java | 0 .../test/java/com/mycompany/app/AppTest.java | 0 22 files changed, 72 insertions(+), 43 deletions(-) create mode 100644 containers/java-12/.devcontainer/settings.vscode.json delete mode 100644 containers/java-8-maven/.devcontainer/Dockerfile delete mode 100644 containers/java-8-maven/.devcontainer/devcontainer.json create mode 100644 containers/java-8/.devcontainer/Dockerfile create mode 100644 containers/java-8/.devcontainer/devcontainer.json rename containers/{java-8-maven => java-8}/.npmignore (100%) rename containers/{java-8-maven => java-8}/.vscode/launch.json (100%) rename containers/{java-8-maven => java-8}/README.md (86%) rename containers/{java-8-maven => java-8}/test-project/.classpath (100%) rename containers/{java-8-maven => java-8}/test-project/.gitignore (100%) rename containers/{java-8-maven => java-8}/test-project/.project (100%) rename containers/{java-8-maven => java-8}/test-project/.settings/org.eclipse.jdt.apt.core.prefs (100%) rename containers/{java-8-maven => java-8}/test-project/.settings/org.eclipse.jdt.core.prefs (100%) rename containers/{java-8-maven => java-8}/test-project/.settings/org.eclipse.m2e.core.prefs (100%) rename containers/{java-8-maven => java-8}/test-project/pom.xml (100%) rename containers/{java-8-maven => java-8}/test-project/src/main/java/com/mycompany/app/App.java (100%) rename containers/{java-8-maven => java-8}/test-project/src/test/java/com/mycompany/app/AppTest.java (100%) diff --git a/containers/azure-functions-java-8/.devcontainer/Dockerfile b/containers/azure-functions-java-8/.devcontainer/Dockerfile index fe788d5424..671eebfbf0 100644 --- a/containers/azure-functions-java-8/.devcontainer/Dockerfile +++ b/containers/azure-functions-java-8/.devcontainer/Dockerfile @@ -10,6 +10,15 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils 2>&1 +# Verify git and needed tools are installed +RUN apt-get -y install \ + git \ + procps \ + curl \ + apt-transport-https \ + gnupg2 \ + lsb-release + # Install dotnet core sdk - See https://github.com/dotnet/dotnet-docker/blob/master/2.1/sdk/stretch/amd64/Dockerfile # Install .NET CLI dependencies RUN apt-get install -y --no-install-recommends \ @@ -45,14 +54,6 @@ ENV ASPNETCORE_URLS=http://+:80 \ # Trigger first run experience by running arbitrary cmd to populate local package cache RUN dotnet help &> /dev/null -# Verify git and needed tools are installed -RUN apt-get -y install \ - git \ - procps \ - curl \ - apt-transport-https \ - gnupg2 \ - lsb-release # Install Azure Functions and Azure CLI RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/azure-cli.list \ diff --git a/containers/java-11/.devcontainer/Dockerfile b/containers/java-11/.devcontainer/Dockerfile index 3e8e3eea72..b2cce54342 100644 --- a/containers/java-11/.devcontainer/Dockerfile +++ b/containers/java-11/.devcontainer/Dockerfile @@ -5,8 +5,13 @@ FROM maven:3-jdk-11 -# Install git, process tools -RUN apt-get update && apt-get -y install git procps curl +# Configure apt +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update \ + && apt-get -y install --no-install-recommends apt-utils 2>&1 + +# Verify git, needed tools installed +RUN apt-get -y install git procps curl # Install Gradle ENV GRADLE_HOME /opt/gradle @@ -23,3 +28,4 @@ RUN curl -SL --output gradle.zip "https://services.gradle.org/distributions/grad RUN apt-get autoremove -y \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* +ENV DEBIAN_FRONTEND=dialog diff --git a/containers/java-11/README.md b/containers/java-11/README.md index 588b2ecae4..de4e8910a9 100644 --- a/containers/java-11/README.md +++ b/containers/java-11/README.md @@ -2,7 +2,7 @@ ## Summary -*Develop Java applications. Includes the JDK 11, Maven and Gradle build tools.* +*Develop Java 11 applications. Includes the JDK 11, Maven, and Gradle build tools.* | Metadata | Value | |----------|-------| diff --git a/containers/java-12/.devcontainer/Dockerfile b/containers/java-12/.devcontainer/Dockerfile index e37ad6a913..738a54273f 100644 --- a/containers/java-12/.devcontainer/Dockerfile +++ b/containers/java-12/.devcontainer/Dockerfile @@ -5,8 +5,12 @@ FROM maven:3-jdk-12 -# Install git, process tools -RUN yum update -y && yum install -y git procps unzip +# Add a setting to disable the out of date git warning. Unfortunatley, openJDK +# Docker images use Oracle SE Linux which has an outdated version of git (<2.0). +COPY settings.vscode.json /root/.vscode-remote/data/Machine/settings.json + +# Verify git, needed tools installed +RUN yum install -y git curl procps unzip # Install Gradle ENV GRADLE_HOME /opt/gradle diff --git a/containers/java-12/.devcontainer/settings.vscode.json b/containers/java-12/.devcontainer/settings.vscode.json new file mode 100644 index 0000000000..8bd85eec15 --- /dev/null +++ b/containers/java-12/.devcontainer/settings.vscode.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLegacyWarning": true +} \ No newline at end of file diff --git a/containers/java-12/README.md b/containers/java-12/README.md index 972f2f5287..136e5a5f97 100644 --- a/containers/java-12/README.md +++ b/containers/java-12/README.md @@ -2,7 +2,7 @@ ## Summary -*Develop Java applications. Includes the JDK 12, Maven and Gradle build tools.* +*Develop Java 12 applications. Includes JDK 12, Maven, and Gradle build tools.* | Metadata | Value | |----------|-------| diff --git a/containers/java-8-maven/.devcontainer/Dockerfile b/containers/java-8-maven/.devcontainer/Dockerfile deleted file mode 100644 index a47cb4d7e6..0000000000 --- a/containers/java-8-maven/.devcontainer/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -#----------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See LICENSE in the project root for license information. -#----------------------------------------------------------------------------------------- - -FROM maven:3-jdk-8 - -# Install git, process tools -RUN apt-get update && apt-get -y install git procps - -# Clean up -RUN apt-get autoremove -y \ - && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* - \ No newline at end of file diff --git a/containers/java-8-maven/.devcontainer/devcontainer.json b/containers/java-8-maven/.devcontainer/devcontainer.json deleted file mode 100644 index 987d123896..0000000000 --- a/containers/java-8-maven/.devcontainer/devcontainer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Java 8 & Maven", - "dockerFile": "Dockerfile", - "extensions": [ - "vscjava.vscode-java-pack", - "redhat.vscode-xml" - ] -} diff --git a/containers/java-8/.devcontainer/Dockerfile b/containers/java-8/.devcontainer/Dockerfile new file mode 100644 index 0000000000..a4f996b945 --- /dev/null +++ b/containers/java-8/.devcontainer/Dockerfile @@ -0,0 +1,31 @@ +#----------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See LICENSE in the project root for license information. +#----------------------------------------------------------------------------------------- + +FROM maven:3-jdk-8 + +# Configure apt +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update \ + && apt-get -y install --no-install-recommends apt-utils 2>&1 + +# Verify git, needed tools installed +RUN apt-get -y install git procps curl + +# Install Gradle +ENV GRADLE_HOME /opt/gradle +ENV GRADLE_VERSION 5.4 +ARG GRADLE_DOWNLOAD_SHA256=c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de +RUN curl -SL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ + && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \ + && unzip gradle.zip \ + && rm gradle.zip \ + && mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/" \ + && ln -s "${GRADLE_HOME}/bin/gradlec" /usr/bin/gradle + +# Clean up +RUN apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* +ENV DEBIAN_FRONTEND=dialog diff --git a/containers/java-8/.devcontainer/devcontainer.json b/containers/java-8/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..44542b0942 --- /dev/null +++ b/containers/java-8/.devcontainer/devcontainer.json @@ -0,0 +1,7 @@ +{ + "name": "Java 8", + "dockerFile": "Dockerfile", + "extensions": [ + "vscjava.vscode-java-pack" + ] +} diff --git a/containers/java-8-maven/.npmignore b/containers/java-8/.npmignore similarity index 100% rename from containers/java-8-maven/.npmignore rename to containers/java-8/.npmignore diff --git a/containers/java-8-maven/.vscode/launch.json b/containers/java-8/.vscode/launch.json similarity index 100% rename from containers/java-8-maven/.vscode/launch.json rename to containers/java-8/.vscode/launch.json diff --git a/containers/java-8-maven/README.md b/containers/java-8/README.md similarity index 86% rename from containers/java-8-maven/README.md rename to containers/java-8/README.md index 925fd9aed7..7a322cd799 100644 --- a/containers/java-8-maven/README.md +++ b/containers/java-8/README.md @@ -1,12 +1,12 @@ -# Java 8 & Maven +# Java 8 ## Summary -*Develop Java 8 based applications. Includes the JDK, XML tools, along with any dependencies Maven requires.* +*Develop Java 8 applications. Includes JDK 8, Maven, and Gradle build tools.* | Metadata | Value | |----------|-------| -| *Contributors* | The VS Code Team | +| *Contributors* | The VS Code Java Team | | *Definition type* | Dockerfile | | *Languages, platforms* | Java, Maven | @@ -25,11 +25,11 @@ Beyond that, just follow these steps to use the definition: 2. To use VS Code's copy of this definition: 1. Start VS Code and open your project folder. 2. Press F1 select and **Remote-Containers: Create Container Configuration File...** from the command palette. - 3. Select the Java 8 & Maven definition. + 3. Select the Java 8 definition. 3. To use latest-and-greatest copy of this definition from the repository: 1. Clone this repository. - 2. Copy the contents of `containers/java-8-maven/.devcontainer` to the root of your project folder. + 2. Copy the contents of `containers/java-8/.devcontainer` to the root of your project folder. 3. Start VS Code and open your project folder. 4. After following step 2 or 3, the contents of the `.devcontainer` folder in your project can be adapted to meet your needs. @@ -43,7 +43,7 @@ This definition includes some test code that will help you verify it is working 1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started) to set up your machine. 2. Clone this repository. 3. Start VS Code, press F1, and select **Remote-Containers: Open Folder in Container...** -4. Select the `containers/java-8-maven` folder. +4. Select the `containers/java-8` folder. 5. After the folder has opened in the container, press F5 to start the project. 6. You should see "Hello Remote World!" in the a Debug Console after the program executes. 7. From here, you can add breakpoints or edit the contents of the `test-project` folder to do further testing. diff --git a/containers/java-8-maven/test-project/.classpath b/containers/java-8/test-project/.classpath similarity index 100% rename from containers/java-8-maven/test-project/.classpath rename to containers/java-8/test-project/.classpath diff --git a/containers/java-8-maven/test-project/.gitignore b/containers/java-8/test-project/.gitignore similarity index 100% rename from containers/java-8-maven/test-project/.gitignore rename to containers/java-8/test-project/.gitignore diff --git a/containers/java-8-maven/test-project/.project b/containers/java-8/test-project/.project similarity index 100% rename from containers/java-8-maven/test-project/.project rename to containers/java-8/test-project/.project diff --git a/containers/java-8-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs b/containers/java-8/test-project/.settings/org.eclipse.jdt.apt.core.prefs similarity index 100% rename from containers/java-8-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs rename to containers/java-8/test-project/.settings/org.eclipse.jdt.apt.core.prefs diff --git a/containers/java-8-maven/test-project/.settings/org.eclipse.jdt.core.prefs b/containers/java-8/test-project/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from containers/java-8-maven/test-project/.settings/org.eclipse.jdt.core.prefs rename to containers/java-8/test-project/.settings/org.eclipse.jdt.core.prefs diff --git a/containers/java-8-maven/test-project/.settings/org.eclipse.m2e.core.prefs b/containers/java-8/test-project/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from containers/java-8-maven/test-project/.settings/org.eclipse.m2e.core.prefs rename to containers/java-8/test-project/.settings/org.eclipse.m2e.core.prefs diff --git a/containers/java-8-maven/test-project/pom.xml b/containers/java-8/test-project/pom.xml similarity index 100% rename from containers/java-8-maven/test-project/pom.xml rename to containers/java-8/test-project/pom.xml diff --git a/containers/java-8-maven/test-project/src/main/java/com/mycompany/app/App.java b/containers/java-8/test-project/src/main/java/com/mycompany/app/App.java similarity index 100% rename from containers/java-8-maven/test-project/src/main/java/com/mycompany/app/App.java rename to containers/java-8/test-project/src/main/java/com/mycompany/app/App.java diff --git a/containers/java-8-maven/test-project/src/test/java/com/mycompany/app/AppTest.java b/containers/java-8/test-project/src/test/java/com/mycompany/app/AppTest.java similarity index 100% rename from containers/java-8-maven/test-project/src/test/java/com/mycompany/app/AppTest.java rename to containers/java-8/test-project/src/test/java/com/mycompany/app/AppTest.java From a900427749284f17194917ddfae0474e80afcb66 Mon Sep 17 00:00:00 2001 From: Chuck Lantz Date: Thu, 25 Apr 2019 12:33:06 -0700 Subject: [PATCH 2/2] Made curl download silent to avoid stderr messages --- containers/java-11/.devcontainer/Dockerfile | 2 +- containers/java-12/.devcontainer/Dockerfile | 2 +- containers/java-8/.devcontainer/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/containers/java-11/.devcontainer/Dockerfile b/containers/java-11/.devcontainer/Dockerfile index b2cce54342..c3134d04e9 100644 --- a/containers/java-11/.devcontainer/Dockerfile +++ b/containers/java-11/.devcontainer/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -y install git procps curl ENV GRADLE_HOME /opt/gradle ENV GRADLE_VERSION 5.4 ARG GRADLE_DOWNLOAD_SHA256=c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de -RUN curl -SL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ +RUN curl -sSL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \ && unzip gradle.zip \ && rm gradle.zip \ diff --git a/containers/java-12/.devcontainer/Dockerfile b/containers/java-12/.devcontainer/Dockerfile index 738a54273f..f773e24aab 100644 --- a/containers/java-12/.devcontainer/Dockerfile +++ b/containers/java-12/.devcontainer/Dockerfile @@ -16,7 +16,7 @@ RUN yum install -y git curl procps unzip ENV GRADLE_HOME /opt/gradle ENV GRADLE_VERSION 5.4 ARG GRADLE_DOWNLOAD_SHA256=c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de -RUN curl -SL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ +RUN curl -sSL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \ && unzip gradle.zip \ && rm gradle.zip \ diff --git a/containers/java-8/.devcontainer/Dockerfile b/containers/java-8/.devcontainer/Dockerfile index a4f996b945..1da1e27b52 100644 --- a/containers/java-8/.devcontainer/Dockerfile +++ b/containers/java-8/.devcontainer/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -y install git procps curl ENV GRADLE_HOME /opt/gradle ENV GRADLE_VERSION 5.4 ARG GRADLE_DOWNLOAD_SHA256=c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de -RUN curl -SL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ +RUN curl -sSL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \ && unzip gradle.zip \ && rm gradle.zip \