Tag: Java

Docker把db容器和spring启动连接起来,并获取环境variables

在docker中我有一个springboot应用程序容器和mongodb容器。 docker run -p 27017:27017 -d –name myMongo mongo 所以我先运行mongodb容器,然后在springboot容器中运行。 docker run -p 8080:8080 –name mySpringApp –link myMongo:mongodb mySpringApp 之后,我想在我的springboot应用程序中获取这些环境variables。 MONGODB_PORT=tcp://172.17.0.5:27017 MONGODB_PORT_5432_TCP=tcp://172.17.0.5:27017 MONGODB_PORT_5432_TCP_PROTO=tcp MONGODB_PORT_5432_TCP_PORT=27017 MONGODB_PORT_5432_TCP_ADDR=172.17.0.5 在application.properties文件中,我通常喜欢ip和port的常量configuration,所以它连接mongodb容器没有任何问题。 spring.data.mongodb.host=172.17.0.56 spring.data.mongodb.port=27017 但在该application.properties文件我有一种方法来获取该环境variables,顺便说一句,我试图#{systemEnvironment['MONGODB_PORT_5432_TCP_ADDR']}像这样的表示法。 但我的应用程序无法连接到MongoDB容器。 有没有什么好的做法,这种情况下,我也试图实现AbstractMongoConfiguration获取与@Value批注@Valuevariables。

Kubernetes,Java和Grafana – 如何仅显示正在运行的容器?

我正在设置一个设置,在kubernetes平台上托pipe的docker容器中运行我们的Java服务。 在想要创build一个仪表板,我可以监视在我的graphics服务的所有实例的堆使用情况。 将度量标准写入模式: <servicename>.<containerid>.<processid>.heapspace运行良好,我可以在图表中看到所有堆用法。 重新部署后,容器名称会更改,所以新值将添加到现有graphics中。 我的问题是,旧线路继续存在于收到的最后一个值的位置,但是集装箱已经死了。 在grafana中有没有简单的解决scheme? 我只能说:如果您没有收到超过X秒的指标数据,请中止图表行? 更新:升级到最新的Grafana版本,并且将“空值”设置为堆栈和空值中“空值”的值不起作用。 也许这是statsd的问题? 我正在发送数据statsd的forms: felix.javaclient.machine<number>-<pid>.heap:<heapvalue>|g 这有什么不对吗?

Java的NIO内存映射docker装入文件失败

我最近运行到docker,并将我的Java应用程序部署到tomcat泊坞窗容器。 但是我遇到了一个关于NIO内存映射文件的非常具体的错误: File mark = new File("/location/to/docker/mounted/file"); m_markFile = new RandomAccessFile(mark, "rw"); MappedByteBuffer m_byteBuffer = m_markFile.getChannel().map(MapMode.READ_WRITE, 0, 20); 最后一个函数调用失败,如下所示: Caused by: java.io.IOException: Invalid argument at sun.nio.ch.FileChannelImpl.map0(Native Method) at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:906) at com.dianping.cat.message.internal.MessageIdFactory.initialize(MessageIdFactory.java:127) at com.dianping.cat.message.internal.DefaultMessageManager.initialize(DefaultMessageManager.java:197) … 34 more 我不知道发生了什么事。 我在我的Mac环境中testing过,没关系。 在tomcat docker容器中,我将文件位置更改为正常的文件path,也没关系。 看来只发生在docker安装的文件。 其他信息: root@4520355ed3ac:/usr/local/tomcat# uname -a Linux 4520355ed3ac 4.4.27-boot2docker #1 SMP Tue Oct 25 19:51:49 UTC […]

Docker镜像可以使用主机的可执行文件吗?

我有几个Java服务,每个都打包成一个单独的jar文件。 我打算把它们打包成docker图像。 我是否需要在每个映像上绑定Java运行时,还是可以依赖于运行映像的主机已经拥有Java运行时?

在启动里面的docker时,Spring启动应用程序不会启动

我在Docker容器中运行一个简单的spring-boot应用程序。 在启动时是否用java -jar MY_JAR.jar或mvn spring-boot:run应用程序将始终在以下点挂起: 2014-12-22 23:26:58.957 INFO 1 — [ost-startStop-1] osbcembedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 这里有个问题,我只能在DigitalOcean(1CPU,1GB MEM)中的Ubuntu 14.04盒子上重现这一点,即使它在一个容器中运行。 在我的本地机器上(mac)一切运行良好。 Dockerfile: FROM java:8 ADD target/MY_SERVICE-1.0-SNAPSHOT.jar /data/svc.jar EXPOSE 8080 CMD ["java", "-jar", "/data/svc.jar"] 我试过的东西 给JVM更多的内存(机器总数的75%) 按照这里的build议安装haveged库 其他版本的Java我可以得到我的手 有什么build议么? 谢谢你的帮助。 整个日志 (以–debug开头): [Text Art Omitted] :: Spring Boot :: (v1.1.10.RELEASE) 2014-12-22 19:22:58.375 INFO 20816 — […]

拖动Java 8镜像时的Docker错误 – “注册层失败”

我试图拉最新的官方Java泊坞窗图像(Java:8),但我不断failed to register layer错误failed to register layer 。 Java 7和9 Docker镜像成功下载。 我正在运行OS X El Capitan版本10.11.1。 > docker -v Docker version 1.10.0, build 590d5108 > docker-machine -v docker-machine version 0.6.0, build e27fb87 > docker pull java:8 8: Pulling from library/java 03e1855d4f31: Extracting [==================================================>] 51.36 MB/51.36 MB a3ed95caeb02: Download complete 9269ba3950bb: Download complete 6ecee6444751: Download complete 5b865d39f77d: […]

在docker中,spring-boot不能启动

在docker中运行我的spring启动应用程序有点问题。 堆栈:maven 3+,春季启动(jpa / rest / jetty) – mysql – 在docker中部署 所以,我已经在我的POM文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.M3</version> <relativePath/> <!– lookup parent from repository –> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!– SPRING BOOT DEPENDENCIES –> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!– add for exlude tomcat –> […]

使用Docker从命令行构build一个Android项目

我inheritance了我公司的Android Java代码,没有Gradle文件等,我希望能够在我的开发服务器(我从ChromeOS机器编程,因此CLI SSH服务器连接到我开发的服务器上进行编译东东)。 现在我发现了一些Docker镜像,像https://hub.docker.com/r/ksoichiro/android/ (甚至没有工作的命令行示例),但是我还没有设法创build一个APK。 我错过了什么,你会怎么做?

Docker构build在下载期间挂起

Mac 10.10.5在这里,使用docker-machine为我的本地Docker创build一个VirtualBox主机虚拟机。 我有一个项目,build立一个可执行的JVM位于build/libs/myapp-SNAPSHOT.jar 。 我的Dockerfile位于项目的根目录中,如下所示: FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD build/libs/myapp-SNAPSHOT.jar myapp.jar RUN sh -c 'touch /myapp.jar' ENTRYPOINT ["java","-jar","/myapp.jar"] 请注意,我不希望将我的图像推送到任何registry,只是保持/本地运行(现在)。 当我运行: docker build -t myorg/myapp . 我得到以下控制台输出: myuser@mymachine:~/sandbox/myapp$docker build -t myorg/myapp . Sending build context to Docker daemon 42.69 MB Step 1 : FROM frolvlad/alpine-oraclejdk8:slim slim: Pulling from frolvlad/alpine-oraclejdk8 d0ca440e8637: Downloading [=================================================> ] 2.295 MB/2.32 […]

Mavendockercaching依赖

我正在尝试使用docker来自动化maven构build。 我想构build的项目花费了将近20分钟的时间来下载所有的依赖关系,所以我尝试构build一个caching这些依赖关系的Docker镜像,但似乎并没有保存它。 我的Dockerfile是 FROM maven:alpine RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ADD pom.xml /usr/src/app RUN mvn dependency:go-offline 图像生成,它下载一切。 但是,生成的图像与base maven:alpine图像大小相同,所以它似乎没有caching图像中的依赖关系。 当我尝试使用该图像进行mvn compile它会在整个20分钟的时间内重新下载所有内容。 是否有可能build立一个caching我的依赖的Maven图像,以便他们不必每次使用图像进行下载都要下载? 我正在运行以下命令: docker build -t my-maven . docker run -it –rm –name my-maven-project -v "$PWD":/usr/src/mymaven -w /usr/src/mymaven my-maven mvn compile 我的理解是,docker构build过程中的任何RUN成为结果图像的一部分。