Tag: spring

在启动里面的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 — […]

泊坞窗。 Spring应用程序。 设置和获取环境variables

我试图dockerize我的Spring应用程序。 问题:我无法从Docker容器中获取Spring应用程序中的环境variables。 Springconfiguration(2个选项,单独尝试) <bean class="java.net.URI" id="dbUrl"> <constructor-arg value="#{systemProperties['JDBC_CONNECTION_STRING']}"/> </bean> <bean class="java.net.URI" id="dbUrl"> <constructor-arg value="#{systemEnvironment['JDBC_CONNECTION_STRING']}"/> </bean> 也尝试在Java中 URI dbUrl = URI.create(System.getProperty("JDBC_CONNECTION_STRING")); 我的dockerconfiguration。 使用docker-compose build和docker-compose up docker-compose build每次更新值。 泊坞窗,compose.yml app: build: . command: catalina.sh run ports: – "8888:8080" links: – postgres volumes: – /usr/bin postgres: image: postgres:9.5 ports: – "5432" volumes: – /var/lib/postgresql/data Dockerfile FROM tomcat:jre8 ENV […]

Spring Cloud Samples Eureka – Docker – 在链接中使用下划线

使用Spring Cloud,Eureka和Docker可能会遇到一个有趣的exception情况。 我不确定我是否发现了一个问题,或者是否有预期的行为,但这里是要点。 我首先在一个名为docker的容器中运行尤里卡。 接下来,我使用ClientDiscoveryEnabled启动Docker客户端。 docker客户端容器使用docker“link”参数来获取到eureka容器中的主机名可访问性。 yaml文件有一个连接到属性驱动的Eureka的条目: defaultZone: http://user:${eureka.password}@${host.name}:8761/eureka/ 除非我尝试在容器名称中使用下划线,否则一切正常。 如果我使用下划线来命名我的容器,则客户端容器无法使用Eureka注册完全parsing此名称。 如果我删除下划线,一切工作正常。 也许我错过了一些东西,这是预料之中的,但是我还没有看到这个“特色”的提及。 我的客户基于Spring-Cloud-Samples feign-eureka项目。 以下是场景… 这将工作,客户将注册: sudo docker run -d -p=8761:8761 –name foobar chrisccoy/microsvcdemoeureka sudo docker run -d -p=7311:7311 –name democlnt –link foobar:foobar chrisccoy/microsvcdemoclnt java -jar /opt/tst/ms_clnt.jar –host.name=foobar 以下将无法使用! 尤里卡将启动,客户端将启动,但不能注册: sudo docker run -d -p=8761:8761 –name foo_bar chrisccoy/microsvcdemoeureka sudo docker run -d -p=7311:7311 –name […]

使用Docker时的Spring Boot外部configuration

我正在开发一个我想用Docker部署的Spring Boot应用程序。 我遇到的麻烦是我们需要将属性文件存储在服务器上,类似于Tomcat允许您将属性文件放在/ lib中。 如何让Spring Boot在Docker中运行时使用这个文件?

在docker中debuggingspring-boot

出于某种原因,我将远程debugging连接到docker中运行的spring-boot应用程序时遇到问题。 我启动Java应用程序: java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar app.jar 对于docker工人,我在docker-compose上公开这些端口: ports: – "8080:8080" – "8000:8000" 但是,debugging器无法在端口8000上连接。当我在本地运行服务器,但不在docker内时,它起作用。 任何想法为什么? Docker ps输出: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0d17e6851807 pocmanager_manager:latest "/bin/sh -c 'java -D 3 seconds ago Up 2 seconds 0.0.0.0:8000->8000/tcp, 0.0.0.0:8080->8080/tcp pocmanager_manager_1 35ed2e2c32bc redis:latest "/entrypoint.sh redi 14 seconds ago Up 13 seconds 0.0.0.0:6379->6379/tcp pocmanager_redis_1

在Spring启动应用程序中打印docker容器id

我有一个在docker的春季启动应用程序。 这个程序是放大,可以在多个容器上运行。 我想要应用程序打印容器ID。 我怎样才能做到这一点 ?

在spring云中的bootstrap.yml上设置configuration文件,以定位不同的configuration服务器

我使用docker撰写来运行我所有的微服务。 对于每个服务我给它一个简短的主机名。 version: '2' services: config: image: springbox-config-server restart: always ports: – "8890:8890" discovery: image: springbox-eureka restart: always ports: – "8763:8763" 因此,在我的微服务中,我必须以其简短的主机名来定位configuration服务器。 spring: application: name: myservice cloud: config: uri: http://config:8890 fail-fast: true 但是,当我在没有docker的IDE中本地运行它们时,无法parsing短主机名。 所以我正在寻找一个解决scheme,根据我的环境定位不同的configuration服务器。

无法创builddocker访问对象

我想用fabric8的插件进行spring集成testing,但是当我尝试运行testing时,我得到了下一个错误: 无法创builddocker访问对象 我有Ubuntu的,我认为我有良好的configurationdocker,我没有任何问题,docker文件或dockercompose,所以可能会是一个权限问题,或者我忘了一些东西。 我通过下面我的fabric8configuration,这有一个图像的MySQL和maven-failsafe插件集成testing。 <!–maven plugin –> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> <configuration> <environmentVariables> <it-database.port>${it-database.port}</it-database.port> </environmentVariables> </configuration> </plugin> <!–fabric8 plugin –> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.18.1</version> <configuration> <!–<dockerHost>unix:///var/run/docker.sock</dockerHost>–> <dockerHost>tcp://0.0.0.0:2375</dockerHost> </configuration> <executions> <execution> <id>prepare-it-database</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> <configuration> <images> <image> <name>mysql:5.7</name> <alias>it-database</alias> <run> <ports> <port>it-database.port:5432</port> </ports> <wait> <log>database system is […]

在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 kerberos webhdfs AuthenticationException:未经授权

我有一个spring的应用程序。 其中一种方法是使用webhdfs从hdfs中读取一个文件。 当我在想法testing它,它的工作。 但是,在我构build项目并在虚拟机本地或在连接到hdfs的服务器上部署Docker镜像后,我就可以看到。 AuthenticationException: Unauthorized 在我的本地机器上,我必须定期初始化令牌 kinit 用于听力。 如果我不这样做,我会得到同样的错误。 我testing了没有docker在服务器上的应用程序,它也可以。 我认为,docker形象没有看到令牌。 但是我不知道该怎么办。 Kerberos用于安全性。 有什么build议?