Hop*_*nda 39 containers docker docker-compose docker-swarm docker-machine
在使用docker容器时开发应用程序时我没有得到一些东西.
让我说我正在开发一个java应用程序,我设置了一个带有jdk 8基本映像的java容器,我仍然需要在我的本地开发机器上安装java 8 jdk,因为我要使用的IDE将寻找运行时本地计算机上的库而不是docker容器.
这是对的还是我错过了什么?有些事情我可以完全在docker容器上做,比如设置一个数据库,但是我还需要在我的本地开发机器上做一些事情,并尝试将它与我的docker镜像匹配,例如像java或python这样的语言运行库为了使用IDE.
tgo*_*gos 16
在使用docker容器时开发应用程序时,我没有得到一些东西.
没关系,这不是一件小事.尝试看大图,它是关于创建开发管道(如果您想使用术语持续集成/持续交付,则创建CI/CD管道).
以上图片来自 [2]
让我说我正在开发一个java应用程序,我设置了一个带有jdk 8基本映像的java容器,我仍然需要在我的本地开发机器上安装java 8 jdk,因为我要使用的IDE将寻找运行时本地计算机上的库而不是docker容器.
这是一个可能导致您已经提到的问题的选项:它可能在您的本地开发环境中工作而在其他地方失败,因为您忘记添加库,依赖项,您在没有注意的情况下进行的微小更改并记住添加它你的码头工人环境.
解决上述问题的方法是依靠docker [3]来设置您想要使用的环境.这意味着每次更改某些内容时,您将需要基于此图像docker build的新图像和docker run新容器.正如其他人所提到的,要定义你的图像将如何构建,你将不得不使用Dockerfiles.如果您的应用程序具有不同的互连容器,则必须在文件中定义所有这些(网络,链接,依赖项)docker-compose.yml.构建和运行的重复过程将成为您IDE的工作......
来自[1]:
IDE
Docker版本不提供用于使用Docker进行开发的本机IDE.主接口是命令行API.但是,大多数领先的IDE(NetBeans,Eclipse,IntelliJ,Visual Studio)都通过插件或附件为Docker提供了一些支持.
例如,来自[2]:
您可以在此处找到一些指导原则(IDE,语言......):
我认为这种方法符合您的标题"在docker容器上开发",我的意思是/了解某人有一个带有共享卷的运行容器的情况,并且每当代码中发生更改时(使用IDE),这会影响容器直接.也许这适用于一个案例,并且对其他一些案例有限制.您可以自己进行评估并选择自己的路径.
我的消息来源是:
[1] Docker参考架构:使用Docker EE开发管道最佳实践[2] 探索CI/CD中的Docker[3] 什么是容器?来自VMware Cloud-Native的视频Mar*_*uza 14
您可以选择将IDE作为docker容器运行,因此您无需在计算机上安装任何东西.
为此,您需要:
- docker
- X11
- 您选择的IDE.
看一下在IntelliJ IDE中运行java8和gradle的java项目:
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.gz
Run Code Online (Sandbox Code Playgroud)
泊坞窗,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:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14591 次 |
| 最近记录: |