首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在停靠容器上进行开发时使用IDE

在停靠容器上进行开发时使用IDE
EN

Stack Overflow用户
提问于 2017-10-13 15:27:24
回答 2查看 26K关注 0票数 51

在使用docker容器开发应用程序时,有一些东西是我不能理解的。

假设我正在开发一个java应用程序,并且我使用jdk 8基础镜像设置了一个java容器,我仍然需要在我的本地开发机器上安装java 8 jdk,因为我将要使用的IDE将在本地机器上查找运行时库,而不是docker容器。

这是对的,还是我漏掉了什么?有些事情我可以完全在docker容器上做,比如设置一个数据库,但有些事情我也必须在本地开发机器上做,并尝试将它与我的docker镜像相匹配,例如,为了使用IDE,使用java或python之类的语言运行时。

EN

回答 2

Stack Overflow用户

发布于 2018-02-05 03:46:39

您还可以选择将IDE作为docker容器运行,因此您不需要在计算机上安装任何东西。

为此,您需要:

您选择的

  • docker
  • X11
  • an集成开发环境。

看看这个java项目,它在IntelliJ集成开发环境中运行java8和gradle:

https://github.com/marioluan/java-data-structures

设置非常简单:

Dockerfile

代码语言:javascript
复制
FROM openjdk:8-jdk-alpine

# ttf-dejavu is required to render GUI under X11: https://github.com/docker-library/openjdk/issues/73
RUN apk --update add --no-cache ttf-dejavu

# install intellij
RUN wget -O /tmp/idea.tar.gz https://download-cf.jetbrains.com/idea/ideaIC-2017.3.4.tar.gz \
    && mkdir -p /usr/share/intellij \
    && tar -xf /tmp/idea.tar.gz --strip-components=1 -C /usr/share/intellij \
    && rm /tmp/idea.tar.gz

docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
  intellij:
    build: .
    environment:
      - DISPLAY=$DISPLAY
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix
      - /your/workspace:/tmp/your/workspace
      - idea_cache:/root/.IdeaIC2017.3
      - java_cache:/root/.java
    working_dir: $APP_ROOT
    command: /usr/share/intellij/bin/idea.sh
volumes:
  idea_cache:
  java_cache:
票数 21
EN

Stack Overflow用户

发布于 2018-02-10 22:59:45

我能感受到你的痛苦。开发具有多个库依赖项的项目可能会使构建过程变得更加耗时,每次进行更改时都会如此。这可能会让人沮丧。

幸运的是,您可以通过使用maven-docker-plugin https://github.com/spotify/docker-maven-plugin编写DockerFile来解决此问题。

这将保存主机上已有的可用的库依赖项。

例如,我在一个开放源码存储库中打开了一个拉取请求:https://github.com/iotaledger/iri/pull/481/files

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46724661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档