如何使用intellij在docker容器中开发?

Dr.*_*all 20 intellij-idea docker

我知道intellij有一个docker容器插件,但它似乎不允许我在容器内部开发.这个想法很简单,我不想让我的主机配置正确的环境工具.我宁愿只是一个docker容器设置,然后使用intellij在容器本身中查找libs,function等.

这对c ++,java和scala dev非常有帮助.它也是有用的调试.

那么有可能在intellij的docker容器中开发吗?

小智 7

方法不应该是:拥有本地存储库和本地 IDE。存储库中有 docker 文件,最终有 docker-compose.yml,它启动运行项目所需的环境。将带有源的本地驱动器安装到 docker(卷)中,因此在本地文件夹中所做的更改会反映在 docker 中,其他方向类似。

  • 我同意,但是如何向 IntelliJ 提供 JDK?你把它指向容器里的那个吗? (5认同)

gum*_*ins 6

请查看这个基于 Alpine Linux 的 Intellij IDEA CI 和 JDK8 的示例(取自此处 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
Run Code Online (Sandbox Code Playgroud)


jan*_*nis 5

因此,您只想像在成熟的VM中一样在容器中工作,对吗?然后,您应该只运行一个容器,附加一个显示器(以运行IDEA)并开始配置您的开发环境。对于显示部分,我将测试您可以在docker容器中运行GUI应用程序中给出的一些答案吗?。这个主题有一些非常酷的答案,显示了在容器中运行GUI应用程序的各种方法。