Как я могу развиваться в контейнере докеров с intellij?

Я знаю, что у Intellij есть плагин Docker-контейнера, однако он не позволяет мне развиваться внутри самого контейнера. Идея проста, я не хочу, чтобы мой хост имел правильные инструменты среды. Я бы предпочел просто установить контейнер докера, а затем использовать intellij для поиска библиотек, функциональности и тому подобного в самом контейнере.

Это было бы невероятно полезно для c++, Java и Scala Dev. Также была бы полезна отладка.

Таким образом, возможно ли создать внутри докера контейнер с intellij?

Ответ 1

Итак, вы просто хотите работать в контейнере так же, как и в полномасштабной виртуальной машине, верно? Затем вы должны просто запустить контейнер, подключить дисплей (для запуска IDEA) и начать настройку среды разработки. Для части дисплея я бы проверил некоторые ответы, приведенные в Можете ли вы запускать приложения GUI в контейнере докеров?. В этом разделе есть несколько замечательных ответов, в которых показаны различные подходы к запуску графических приложений в контейнере.

Ответ 2

Пожалуйста, посмотрите на этот пример для IntelliJ IDEA CI и JDK8 на основе Alpine Linux (взято здесь https://raw.githubusercontent.com/shaharv/docker/master/alpine/dev/Dockerfile)

# Alpine 3.8 C++/Java Developer Image
#
# For IntelliJ and GUI (X11), run the image with:
# $ XSOCK=/tmp/.X11-unix && sudo docker run -i -v $XSOCK:$XSOCK -e DISPLAY -u developer -t [image-name]
#
# Then run IntelliJ with:
# /idea-IC-191.6707.61/bin/idea.sh

FROM alpine:3.8

ENV LANG C.UTF-8

RUN set -ex && \
    apk add --no-cache --update \
    # basic packages
        bash bash-completion coreutils file grep openssl openssh nano sudo tar xz \
    # debug tools
        gdb musl-dbg strace \
    # docs and man
        bash-doc man man-pages less less-doc \
    # GUI fonts
        font-noto \
    # user utils
        shadow

RUN set -ex && \
    apk add --no-cache --update \
    # C++ build tools
        cmake g++ git linux-headers libpthread-stubs make

RUN set -ex && \
    apk add --no-cache --update \
    # Java tools
        gradle openjdk8 openjdk8-dbg

# Install IntelliJ Community
RUN set -ex && \
    wget https://download-cf.jetbrains.com/idea/ideaIC-2019.1.1-no-jbr.tar.gz && \
    tar -xf ideaIC-2019.1.1-no-jbr.tar.gz && \
    rm ideaIC-2019.1.1-no-jbr.tar.gz

# Create a new user with no password
ENV USERNAME developer
RUN set -ex && \
    useradd --create-home --key MAIL_DIR=/dev/null --shell /bin/bash $USERNAME && \
    passwd -d $USERNAME

# Set additional environment variables
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV JDK_HOME  /usr/lib/jvm/java-1.8-openjdk
ENV JAVA_EXE  /usr/lib/jvm/java-1.8-openjdk/bin/java