Support for JetBrains IDEs in Dev Container (including the ability to run on a remote Docker server where the bind command does not allow the devcontainer to start).

This commit is contained in:
Yuri Trukhin 2024-04-15 12:27:27 +02:00
parent 516722647a
commit a4806408be
5 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,17 @@
ARG VARIANT=17-bullseye
FROM mcr.microsoft.com/vscode/devcontainers/java:0-${VARIANT}
RUN groupadd -r developer
RUN useradd -r -g developer -d /home/developer -s /bin/bash developer
RUN mkdir -p /home/developer && chown developer:developer /home/developer
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
ARG USER=vscode
VOLUME /home/$USER/.m2
VOLUME /home/$USER/.gradle
ARG JAVA_VERSION=17.0.7-ms
RUN sudo mkdir /home/$USER/.m2 /home/$USER/.gradle && sudo chown $USER:$USER /home/$USER/.m2 /home/$USER/.gradle
RUN bash -lc '. /usr/local/sdkman/bin/sdkman-init.sh && sdk install java $JAVA_VERSION && sdk use java $JAVA_VERSION'

View file

@ -0,0 +1,19 @@
{
"name": "Petclinic",
"dockerFile": "Dockerfile",
"runArgs": [
"--mount",
"type=volume,source=maven-repo,target=/home/developer/.m2",
"--mount",
"type=volume,source=gradle-home,target=/home/developer/.gradle",
"--env",
"GRADLE_USER_HOME=/home/developer/.gradle"
],
"initializeCommand": "./.devcontainer/jetbrains/initializeCommands.sh",
"postCreateCommand": "sudo chown developer:developer /home/developer/.m2 /home/developer/.gradle",
"remoteUser": "developer",
"features": {
"docker-in-docker": "latest"
},
"forwardPorts": [8080]
}

View file

@ -0,0 +1,3 @@
#!/bin/bash
docker volume inspect maven-repo >/dev/null 2>&1 || docker volume create maven-repo
docker volume inspect gradle-home >/dev/null 2>&1 || docker volume create gradle-home