当前位置: 首页 > 知识库问答 >
问题:

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

东郭俊楠
2023-03-14

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

这将对c、java和scala开发人员非常有帮助,而且对调试也非常有用。

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

共有3个答案

周伟泽
2023-03-14

请看这个基于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
伊羽
2023-03-14

这种方法不应该是:使用本地存储库和本地IDE吗。在存储库中有docker文件,最终由docker编写。yml,它启动运行项目所需的环境。将带有源的本地驱动器装入docker(卷),这样本地文件夹中所做的更改将反映在docker中,与其他方向类似。

孙博艺
2023-03-14

所以你只想在容器中工作,就像在成熟的VM中一样,对吗?然后,您应该运行一个容器,附加一个显示器(运行IDEA),然后开始配置您的开发环境。

对于显示部分,我将测试docker容器中能否运行GUI应用程序中给出的一些答案?。本主题中有一些非常酷的答案,展示了在容器中运行GUI应用的各种方法。

 类似资料:
  • 这可能已经被问过了,但到目前为止,我根本找不到任何详细的解释,现有的留档似乎是为某种通灵者写的,他应该知道一切。 根据本手册,我添加了容器 然后我检查它以接收容器ip 检查的端口 并尝试用这个公式在浏览器中连接 它不起作用。 我是否做错了什么,或者我应该添加一些额外的东西,比如 apache 或其他东西的容器? 编辑 据我了解,在创建一些兔子容器后,现在我需要运行 Dockerfile 来创建映像

  • 问题内容: 可能已经有人问过这个问题,但是到目前为止,我根本找不到任何详细的解释,而现有的文档似乎好像是为应该了解所有知识的通灵者编写的。 按照本手册,我添加了容器 然后我检查了它以接收容器ip 检查端口 并尝试使用此公式在浏览器中进行连接 没用 我是在做错什么,还是应该添加一些其他内容,例如用于存放Apache或其他内容的容器? 编辑 据我了解,在创建了一些兔子容器之后,现在我需要运行Docke

  • 问题内容: 通常,docker容器使用 root 用户运行。我想使用其他用户,使用docker的USER指令没问题。但是该用户应该能够在容器内使用 sudo 。该命令丢失。 这是用于此目的的简单Dockerfile: 运行此容器,我以用户’docker’登录。当我尝试使用sudo时,找不到命令。所以我尝试使用以下方法在Dockerfile中安装 sudo 软件包 这导致 无法找到包sudo 问题答

  • 问题内容: 似乎在容器中没有“ acl”的情况下挂载了文件系统,因此“ setfacl”将不起作用。而且它也不会让我重新安装它,甚至无法运行’df -h’。 我需要setfacl,因为我以root身份拥有我网站上的所有文件,并且授予Web服务器用户仅对几个目录(如缓存,日志等)的写权限。 我能做什么? 问题答案: 好消息是Docker支持ACL。 在早期版本中,Docker使用了一个不支持它们的名

  • 通常,docker容器使用用户root运行。我想使用一个不同的用户,这是没有问题的使用Docker的用户指令。但该用户应该能够在容器内使用sudo。缺少此命令。 下面是一个用于此目的的简单Dockerfile: 运行这个容器时,我使用用户'docker'登录。当我尝试使用sudo时,找不到该命令。所以我尝试在我的Dockerfile中安装sudo包,使用 这将导致无法定位包sudo

  • 我正在docker容器中设置一个应用程序。我希望这个应用程序能够与localstack堆栈容器localstack文档连接。当我运行时,容器会成功启动。我可以运行docker-compose文件中未包含的独立java应用程序,它将成功连接到localstack容器。但与localstack一起启动的应用程序无法连接。我看过docker文档和localstack文档,我想不出如何让这些东西彼此通信。