Tag: Java

在某些情况下,如何跳过一个gradle任务,由bmuschko / gradle-docker-plugin引入?

我使用gradle插件bmuschko / gradle-docker-plugin将docker与gradle集成在一起。 我在build.gradle文件中创build了一些任务: task copyJar(type: Copy) { dependsOn build from project.file("$project.buildDir/libs/" << jarName) into project.file("$project.buildDir/docker") } task createDockerfile(type: Dockerfile) { dependsOn copyJar // Generate Dockerfile } task buildDockerImage(type: DockerBuildImage) { dependsOn createDockerfile inputDir = createDockerfile.destFile.parentFile tag = 'example.com/' << jar.baseName if (project.hasProperty('imageTag')) { tag += ':' << imageTag } } task pushDockerImage(type: DockerPushImage) { […]

使用Spring Boot和Docker的外部属性文件

我无法configuration一个Dockerfile来使用Spring Boot的外部属性文件。 这是我的Dockerfile: FROM java:8-jre VOLUME /tmp /var/gpm/config ADD gpm-web-1.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-cp","/var/gpm/config","-Dspring.config.location=classpath:application.properties","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 而在我的主机,我有这个path的属性文件:/var/gpm/config/application.properties 但是,不行。 UPDATE 我改变了Dockerfile: FROM java:8-jre VOLUME /tmp ADD gpm-web-1.0.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","–spring.config.location=file:/conf/application.properties"] 并运行这个: docker run -d -p 8080:8080 -v /opt/gpm/config/application.properties:/conf/application.properties –name gpm gpm-web:1.0 但是,该文件是像一个文件夹: root@b7349202b6d3:/# ls -la /conf/ total 8 drwxr-xr-x […]

无法连接到泊坞窗上的本地主机

我正在使用Gitlab中使用docker的集成configuration项。 我的源代码已被放置在框中,并使用maven,我build立一个简单的Web服务与Spring作为一个可执行的jar运行。 问题是当我尝试使用curl -I http://127.0.0.1:8080/连接到Web服务 “curl:(7)无法连接到127.0.0.1端口8080:连接被拒绝”返回。 现在,因为docker镜像是我创build的镜像,所以我可以使用docker run -t -i <container name> /bin/bash在本地login容器并testing操作。 在这种情况下,我可以从Web服务器获得响应。 有谁知道为什么在gitlab基础设施上使用curl不起作用? 请注意我也试过: curl-I http://127.0.0.1:8080/ curl -I http://0.0.0.0:8080/ curl -I http:// localhost:8080 /

Docker + Spring的启动错误:无法从url创buildVfs.Dir

在Docker容器中运行Spring Boot应用程序时,我遇到了这个错误。 我不知道如何解决这个问题。 我已经尝试创build目录/ usr / lib / jvm / java-8-openjdk-amd64 / jre / lib / ext /但是这似乎没有帮助。 我也试着用这个目录挂载一个卷。 这似乎是一个Docker的问题,因为我可以作为一个.jar运行应用程序。 这也阻止了系统的通信。 org.reflections.ReflectionsException: could not create Vfs.Dir from url, no matching UrlType was found [file:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/libatk-wrapper.so] either use fromURL(final URL url, final List<UrlType> urlTypes) or use the static setDefaultURLTypes(final List<UrlType> urlTypes) or addDefaultURLTypes(UrlType urlType) with your specialized […]

在docker运行–ulimit cpu = 10在某些情况下不起作用

我有一个奇怪的问题使用–ulimit cpu=10 。 我想确保在使用CPU 10秒之后进程被终止。 当java进程被直接调用的时候会失败,但是当它被第一次运行的时候调用它就可以了。 这工作正常。过程10s后死亡 docker run –rm -i -v /usr/local/src:/classes –ulimit cpu=10 java:8 \ bash -c 'java -cp /classes/ InfiniteLoop' 但是这不是。 docker run –rm -i -v /usr/local/src:/classes –ulimit cpu=10 java:8 \ java -cp /classes/ InfiniteLoop 任何想法如何解决这个问题?

Docker撰写 – Flyway – 无法从DataSource获取Jdbc连接

我试图在Ubuntu中使用Docker Compose部署一个microservice和一个flyway服务。 docker-compose.yml如下所示: version: '2' services: mysqldb: image: mysql:5.6.26 environment: MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: base ports: – "3306:3306" flyway-service-i: image: mialk/flyway-service volumes: – "../resources/db/migration:/migrations/ro" depends_on: – mysqldb links: – mysqldb command: migrate -url=jdbc:mysql://mysqldb:3306/base -user=user -password=password -baselineOnMigrate=true – locations='filesystem:/migrations' service1: image: my/service ports: – "8080:8080" links: – mysqldb environment: – SPRING_DATASOURCE_URL=jdbc:mysql://mysqldb:3306/base – SPRING_DATASOURCE_USERNAME=user […]

java.lang.NoClassDefFoundError:多次使用程序后发生

我有一个从Docker容器运行的服务,它运行了大约一个小时左右,然后突然抛出一个java.lang.NoClassDefFoundError。 看完这些错误之后,它似乎在初始化中经常出现问题,但是我的服务一开始就运行良好 – 包括使用突然找不到的类! 事实上,这个特定的类需要被初始化,以便服务正确启动。 这是一个在Spring上运行的multithreading应用程序。 一个class上课后失踪的原因是什么?

Ping工作,但Java代码失败,主机在Docker中无法访问

我被困在docker和Javanetworking问题。 我有几个容器通过docker-compose启动。 有些人需要和别人交谈。 例如一个容器启动RabbitMQ,另一个容器连接到它。 一切工作正常,如果我在与容器名称连接的URL中使用。 但是,我想使用实际的docker主机名称地址(以便我使用的configuration文件可以从外部docker容器以外的机器使用),这不正常。 假设我有两个容器: 的RabbitMQ 的MessageConsumer 如果messageconsumerconfiguration为访问amqp://rabbitmq:5672 ,则连接正常。 但是我的容器正在主机docker.mycompany.com上运行。 如果我使用amqp://docker.mycompany.com:5672作为url,那么使用java.net.NoRouteToHostException: Host is unreachable messageconsumer java代码barfs java.net.NoRouteToHostException: Host is unreachable 。 但是,如果我在messageconsumer容器中启动一个shell,那么ping docker.mycompany.com可以工作了! 为什么shell和ping查找主机地址,但不是Java? 我的图像基于openjdk:高山。 任何帮助感激!

Docker maven插件NullPointerException

我有一个多模块的Maven Java项目,我希望每个模块在构build阶段创build一个docker容器。 我已经用微服务作为基础项目使用下面的示例项目: https : //github.com/kbastani/spring-cloud-microservice-example 插件configuration如下: <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${docker.plugin.version}</version> <executions> <execution> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 这在基础项目中正常工作,并且所有容器都正确地构build。 当我用自己的更新父项和所有子模块中的groupId和artifactId时 ,在构build子模块期间出现以下错误 [ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default) on project users-microservice: Exception caught: NullPointerException -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal […]

docker运行映像404. Tomcat – 请求的资源不可用

我需要在Docker容器中的Tomcat上收集一个简单的Java应用程序,但启动后我们有错误: HTTP Status 404 – /docker-test-02-1.0-SNAPSHOT type Status report message /docker-test-02-1.0-SNAPSHOT description The requested resource is not available. Apache Tomcat/8.0.41 项目 : Dockerfile : FROM tomcat:8.0.41-jre8 MAINTAINER Sergii D # fixed path for copying COPY docker-test-02-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war # Routine for me – optional for your case EXPOSE 8080 # And run tomcat CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] […]