在使用docker容器开发应用程序时,有一些东西是我不能理解的。
假设我正在开发一个java应用程序,并且我使用jdk 8基础镜像设置了一个java容器,我仍然需要在我的本地开发机器上安装java 8 jdk,因为我将要使用的IDE将在本地机器上查找运行时库,而不是docker容器。
这是对的,还是我漏掉了什么?有些事情我可以完全在docker容器上做,比如设置一个数据库,但有些事情我也必须在本地开发机器上做,并尝试将它与我的docker镜像相匹配,例如,为了使用IDE,使用java或python之类的语言运行时。
发布于 2018-02-05 03:46:39
您还可以选择将IDE作为docker容器运行,因此您不需要在计算机上安装任何东西。
为此,您需要:
您选择的
看看这个java项目,它在IntelliJ集成开发环境中运行java8和gradle:
https://github.com/marioluan/java-data-structures
设置非常简单:
Dockerfile
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.gzdocker-compose.yml
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:发布于 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
https://stackoverflow.com/questions/46724661
复制相似问题