Tag: 弹簧引导

运行使用Flywaytesting并在Docker容器中embeddedPostgresql时的java.net.ConnectException

为了正确地testing我的Spring Boot应用程序,我在集成testing中使用了embedded式Postgresql 。 此外,我也使用Flywayconfiguration为使用基于Postgresqlconfiguration的数据源(查看EmbeddedPostgresConfiguration和FlywayConfiguration类)。 在我的环境(OS X)上运行时,所有的testing都没有问题,但在Docker容器(对于java:8和openjdk:8图像)中运行时失败。 我不知道是什么原因造成这种差异,以及如何解决这个问题,以便在Docker中传递testing(这是进一步的持续集成pipe道所需要的)。 这里是最小的代码示例来复制问题: https : //github.com/nkoder/postgresql-embedded-example 。 运行testing没有问题运行./gradlew clean test 。 以失败运行testing运行docker build . 。 在Docker内运行testing期间抛出的错误: java.lang.IllegalStateException Caused by: org.springframework.beans.factory.BeanCreationException Caused by: org.springframework.beans.BeanInstantiationException Caused by: org.flywaydb.core.api.FlywayException Caused by: org.postgresql.util.PSQLException Caused by: java.net.ConnectException 我试图为自己解决这个问题,但我仍然只有一些猜测,没有什么可靠的。 唯一的“提示”:对于embedded式Postgresqlconfiguration中使用的硬编码(非随机)端口,有时类似的exception发生在flyway.clean(); 在FlywayConfiguration类(从IntelliJ IDEA在更多的testing中运行实际项目的testing时),这似乎是通过提供的数据源访问数据库的第一行代码。 更新1: Postgresql实例在同一个Docker容器内的随机打开的端口上的本地主机上的testing期间被创build。 我怀疑没有必要连接到主机(外部容器)。

不能使用Spotify插件来构buildDocker镜像

我一直在使用Spotify插件来构buildDocker镜像,但由于某种原因,它突然停止工作,并且发出错误,抱怨Spotify插件上的exec失败 [INFO] [INFO] — maven-jar-plugin:2.5:jar (default-jar) @ SimpleWebApp — [INFO] Building jar: /home/test/opd_workspace/my_simple_webapp/target/SimpleWebApp-0.0.1-SNAPSHOT.jar [INFO] [INFO] — spring-boot-maven-plugin:1.3.5.RELEASE:repackage (default) @ SimpleWebApp — [INFO] [INFO] — docker-maven-plugin:0.2.3:build (default-cli) @ SimpleWebApp — SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [INFO] Copying /home/test/opd_workspace/my_simple_webapp/target/SimpleWebApp-0.0.1-SNAPSHOT.jar -> /home/test/opd_workspace/my_simple_webapp/target/docker/SimpleWebApp-0.0.1-SNAPSHOT.jar [INFO] Copying […]

在Docker中引发exception'hibernate.dialect'未设置

我正在使用spring引导来开发一个应用程序,我正在使用mysql作为database.I在application.properties中有以下configuration。 server.port=8090 spring.datasource.url=jdbc:mysql://mysql:3306/sampleDB spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect spring.hibernate.dialect=org.hibernate.dialect.MySQLDialect spring.jpa.hibernate.show_sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.temp.use_jdbc_metadata_defaults=false logging.file=employee.log spring.datasource.testOnBorrow=true spring.datasource.validationQuery=SELECT 1 我在本地有各自的数据库,它在我的本地工作。 但是,只要我创build一个docker图像和链接到我的MySQLdocker容器它抛出以下exception。 org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 这个集装箱甚至连build筑物都没有。 sudo docker run –name bootApp -d –link mysql:mysql springio/employeesecurity 其中springio / employeesecurity是我的springBoot docker名称,而mysql是我的msql容器。

在Docker容器中的Spring Boot太长响应时间

我需要在Docker容器中运行HTTP REST API(带有embedded式Undertow服务器的Spring Boot应用程序),但是当我运行容器并加载基准时,响应时间太长(<1000ms),但是当我运行我的应用程序只是从IDE我得到的答复(<10毫秒),为什么我有如此大的差异? 我的dockerfile: FROM openjdk:8-jdk-alpine ADD run.sh run.sh RUN chmod +x run.sh ADD tmp/data/data.zip tmp/data/data.zip ADD travels-0.0.1-SNAPSHOT.jar app.jar EXPOSE 80 CMD ["sh", "run.sh"] 和从我运行我的应用程序run.sh: #!/bin/sh echo "Unzipping data…" mkdir -p /opt/ unzip -o /tmp/data/data.zip -d /opt/ echo "Starting server…" java -Xmx3G -Xms3G -XX:+AggressiveOpts -server -Djava.security.egd=file:/dev/./urandom -jar app.jar –data.path=/opt/ 预先感谢您的帮助!

与buildDocker Boot2Docker TLS问题

我正在探索docker在Windows7上使用boot2Docker部署我的dockerized java示例项目。 当我使用命令./gradlew build buildDocker java应用程序./gradlew build buildDocker 。 我得到一个问题如下: Execution failed for task ':buildDocker'. > javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 我的build.gradle文件有build.gradle设置如下: docker { useApi true hostUrl 'https://192.168.59.103:2376' } 我search了一些可能的解决scheme,并得到了这个链接 。 我尝试了两种解决方法,但都没有为我工作。 对于第一种方法,即改变configuration文件,并尝试再次build设项目也失败了上述错误。 在第二个解决方法中,我尝试安装并运行 $(docker run sequenceiq/socat) 该命令下载了包并运行。 但是当我试图使用命令docker ps检查正在运行的映像时,结果集中没有任何内容。 之后,我尝试使用curl http://192.168.59.103:2375/_ping ping作为curl: (7) Failed to connect to 192.168.59.103 port 2375: Connection refused返回错误curl: (7) Failed to […]

使用Postgresql Dockerizing Spring Boot应用程序

我正在尝试为使用PostgreSQL作为数据库的Spring Boot应用程序创build一个Docker容器。 我的目标是build立一个运行应用程序以及PostgreSQL的容器。 我创build了一个Dockerfile,如下所示: FROM ubuntu:15.10 LABEL version="1" ADD app.jar app.jar RUN bash -c 'touch /app.jar' # Install Java, Postgresql …… USER postgres RUN /etc/init.d/postgresql start &&\ psql –command "CREATE USER test WITH SUPERUSER PASSWORD 'test';" &&\ createdb -O test test USER root RUN echo "local all all trust" >> /etc/postgresql/9.4/main/pg_hba.conf RUN echo "listen_addresses='127.0.0.1'" >> […]