Tag: Java

提交在/ workspace中生成的文件的容器更改(即使使用makefile)也不会保留到图像的新实例中

我正在使用一个生成大量文件的Java程序(即ANTLR使用语法生成parsing器)。 当我执行: java -cp "/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool Java8.g4 && javac *.java 在使用Docker镜像的交互式shell中,某些java文件及其类在当前目录中生成。 但是当我在Dockerfile中使用以下方法执行此操作时: RUN java -cp "/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool Java8.g4 && javac *.java 该文件似乎并没有生成。 任何原因为什么发生这种情况,我怎么也许可以纠正这个使用Dockerfile中的RUN指令生成文件? 更新1:更多的信息,我的Dockerfile看起来像这样: FROM blah/blah_java MAINTAINER blabla RUN apt-get install -y make wget RUN mkdir -p /usr/java && wget -O java.tar.gz http://download.oracle.com/otn-pub/java/jdk/8u40-b25/jdk-8u40-linux-x64.tar.gz –header "Cookie: oraclelicense=accept-securebackup-cookie" && tar xfz java.tar.gz -C /usr/java ENV JAVA_HOME /usr/java/jdk1.8.0_40 […]

Docker与Spring Boot / Dropwizard是互补还是竞争?

我今天做了一些研究,寻找Docker,Spring Boot和Dropwizard之间的差异 。 但是,我发现了几个博客post和关于如何“dockerize”Spring Boot / Dropwizard应用程序的文章。 在我的理解中, Spring Boot / Dropwizard与Docker非常相似 :可以用它作为“容器”来构build和打包(Java)应用程序(JAR / WAR)。 除了所有这三种select之外,(我认为) 您还需要额外的框架或脚本来实现集群pipe理,弹性,服务发现等function。 对于Docker,您可以使用诸如Kubernetes或Amazon ECS之类的东西。 我还读到,有些人正在为Spring Boot开发Kubernetes集成。 因此,我想知道: Docker和Spring Boot / Dropwizard是否真的是互补的,而不是竞争? 或者你为什么只在网上find关于如何结合他们的文章,而不是他们有什么不同? 感谢一些解释。

尤里卡客户在docker集装箱

我有一个尤里卡服务器和两个rest服务(尤里卡客户端)在docker集装箱运行。 如果第一个服务试图访问第二个服务,我得到一个UnknownHostException。 原因是这些服务使用dns服务器无法parsing的容器主机名在eureka服务器上注册。 我认为解决scheme可能是设置docker集装箱的主机名称。 所以我用docker和-h标志来设置主机名: docker run -h project-dev.net9.mycompany.com 但是现在这些服务甚至不能在尤里卡服务器上注册。 我得到这个例外: 2015-11-30 12:03:42.182 ERROR 1 — [pool-2-thread-1] com.netflix.discovery.DiscoveryClient : Can't get a response from http://project-dev.net9.mycompany.com:8761/eureka/apps/MY-SERVICE/project-dev.net9.mycompany.com Can't contact any eureka nodes – possibly a security group issue? com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:184) at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:120) at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:28) at com.sun.jersey.api.client.Client.handle(Client.java:648) at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680) at com.sun.jersey.api.client.WebResource.put(WebResource.java:211) at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1097) at […]

如何使用Dockerfile安装特定版本的Java 8

我正在试图build立一个Docker容器(使用一个Dockerfile)和一个特定版本的Java 8。 很多例子都是针对最新版本的。 RUN add-apt-repository -y ppa:webupd8team/java RUN apt-get update -y RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections RUN apt-get install -y oracle-java8-installer 我有一个需要在哪里我想控制我的容器供应的特定版本的Java。 任何暗示如何实现这一点? 对于示例Java 8更新31。

Bluemix创build连接到另一个容器的容器组

我们有一个运行在MongoDB上的Java应用程序,每个应用程序都在不同的Bluemix容器中。 两者都是单个 Bluemix容器。 我们希望使用我们的子域之一来提供Java应用程序: https://subdomain.mydomain.com ://subdomain.mydomain.com,它已经指向了Bluemix。 我们怎么办呢? 我们的方法 因为Java容器需要链接到Mongo容器,所以我们以编程方式创build了两个容器(我们没有在UI中find将容器链接到另一个容器的方法),如下所示: sudo bluemix ic run –name mongo-container -p 27017 -m 128 registry.eu-gb.bluemix.net/mycompany/mongo sudo bluemix ic run –name java-container –link mongo-container:mongo -p 8080 -m 128 registry.eu-gb.bluemix.net/mycompany/java 这很好,但Java应用程序只能通过一个丑陋的Blumix IP访问,而不是通过https://subdomain.mydomain.com我们想要的。 如何使用Bluemix容器GROUP (UI中的SCALABLE容器)? 再次,我们不知道如何链接容器从UI,所以它应该是这样的 sudo bluemix ic group-create –auto –name java-scalable -p 8080 -m 128 –hostname subdomain –domain mydomain.com registry.eu-gb.bluemix.net/mycompany/java 但 […]

如何发送HTTP请求到在泊坞窗容器中运行的服务器?

我已经build立了一个Java应用程序,它充当一个Web服务器并处理http请求。 我已经testing过它在容器之外工作(但它在容器中),但是当容器在容器中时,我的请求似乎没有得到它。 服务器侦听端口3971,Dockerfile如下所示: FROM java:8 ADD VaultServer / EXPOSE 3971 EXPOSE 3972 ENTRYPOINT ["java", "-jar", "VaultServer.jar"] 调用根地址应该返回一些东西(通常我会发送一个GET到http:// localhost:3971 / )。 我已经尝试用docker-machine的ip地址replace'localhost',并且在检查我的服务器正在运行的容器时得到的ip地址,但都没有响应。 当我打电话给docker机的IP地址,我得到ERR_CONNECTION_REFUSED。 还有什么我需要启用?

将Spring WAR部署到基于Tomcat的docker

我已经通过Spring 构build了一个REST风格的Web服务教程,并创build了一个虚拟web应用程序(带有“使用Maven构build”的说明)。 我构build并打包了WAR。 然后我用这个命令运行它: java -jar ./target/Dummy-1.0-SNAPSHOT.war 我可以在http:// localhost:8080 / greeting /上看到虚拟的JSON端点。 现在我想用Docker容器化应用程序,这样我就可以进一步testing它,而无需将Tomcat安装到系统空间。 这是我创build的Dockerfile : FROM tomcat:7-jre8-alpine # copy the WAR bundle to tomcat COPY /target/Dummy-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/app.war # command to run CMD ["catalina.sh", "run"] 我构build并运行docker绑定到http:// localhost:8080 。 我可以看到“ http:// localhost:8080 ”上的Tomcat欢迎页面。 但是我也看不到我的应用程序: HTTP://本地主机:8080 /应用/ HTTP://本地主机:8080 /应用/问候/ HTTP://本地主机:8080 /问候/ 我应该如何追踪这个问题? 可能是什么问题呢? 更新1:Tomcatpipe理界面截图

Docker – 将Apache Tomcat Web服务器连接到MySQL服务器

我试图将运行在Apache Tomcat容器中的Web服务器连接到运行另一个容器的MySQL数据库。 为了做到这一点,我正在使用Docker的链接机制。 docker run -it –name ${CONTAINER_NAME} –link db:db -p 8080:8080 -d tomcat 运行容器后,我可以看到容器被链接,环境variables正确显示。 为了将运行在Tomcat容器中的Web应用程序连接到数据库,我使用了以下configuration文件: <Context> <Resource name="jdbc/MYDB" type="javax.sql.DataSource" auth="Container" username="user" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://${DB_PORT_3306_TCP_ADDR}:${DB_PORT_3306_TCP_PORT}/epcis?autoReconnect=true"> </Resource> </Context> 现在的问题是我无法build立到数据库的连接,因为Docker公开的环境variables在Tomcat环境中无法识别。 有一种方法可以让Docker公开的这些环境variables对Apache Tomcat环境可见吗?

Dockerizing一个使用oracle-ojdbc的maven应用程序:你如何获得驱动程序?

我是一个没有经验的docker用户,我正在试图使用Oracle dockerize我的Maven Web应用程序。 当我尝试使用我的maven图像构build时,它失败地说:“在中央找不到工件com.oracle:ojdbc14:jar:10.2.0.4.0”,这是因为我没有将驱动程序包含在任何地方。 我的问题是我怎样才能让docker意识到司机的位置,从而能够build立应用程序? 谢谢

无法从intellij插件部​​署docker镜像

我正在使用intellij 2016.1和docker插件2.1.4。 我想部署一个简单的Java容器到远程机器,并得到错误: 未能部署'gaia-itest图像ID:gaiaadm / gaia-integration-tests':javax.websocket.DeploymentException:启动WebSocket连接的HTTP请求失败 这是部署日志的输出: Deploying 'gaia-itest Image Id: gaiaadm/gaia-integration-tests'… Creating container… Container Id: 71afc5f10a0779639543bb7c74235f507d59e24890e66d01fe17a7f90cccc301 Starting container 'gaia-itest' Attaching to container 'gaia-itest'… Failed to deploy 'gaia-itest Image Id: gaiaadm/gaia-integration-tests': javax.websocket.DeploymentException: The HTTP request to initiate the WebSocket connection failed 这是我的Dockerfile: FROM maven:3.3.3-jdk-8 # Bundle app source COPY . /src # Set the working […]