Tag: Java

spring引导到mysqldocker通信

我创build了一个spring boot应用程序。 当我在Eclipse中运行应用程序时,我可以从浏览器中打开我的服务并获得我想要的响应。 我正在build造这个容器: FROM java:8-jre VOLUME /tmp RUN mkdir -p /conf COPY application.properties /conf/application.properties ADD target/chrisbolton_service-1.0.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"] 我开始使用这个我的spring boot应用程序 docker run -it –name chrisbolton_service –link chrisbolton:mysql -p 8080:8080 chrisbolton_service 另外,我有mysql运行。 从docker ps你可以看到, bcb0a900b693 mysql:latest "docker-entrypoint…" 6 hours ago Up 3 hours 0.0.0.0:3306->3306/tcp chrisbolton 我读过 ,我需要链接我的容器。 但是,当我打我的端点localhost:8080/blogs我越来越 2017-08-29 […]

dockernetworking不工作没有链接

我有一个mysql容器和一个service容器,需要连接到mysql容器。 我创build了一个networking与docker network create chrisbolton 我正在旋转的mysql容器 docker run –name chrisbolton-mysql -v /Users/Bolton/chrisbolton-data:/var/lib/mysql –network chrisbolton -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=chrisbolton -d mysql:latest 我正在旋转service容器 docker run -p 8080:8080 –name chrisbolton-service –network chrisbolton –link chrisbolton-mysql:mysql -d chrisbolton-service 不过,我知道这个link已被弃用,我需要转移到只使用networks 。 但是,如果我删除link在这里两个容器不能沟通。 我用以下configuration连接到mysql : #disbale Spring banner spring.main.banner-mode=off spring.datasource.url=jdbc:mysql://mysql:3306/chrisbolton spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.jdbc.Driver 我做了一个docker network inspect chrisbolton得到的IPAddresses,并试图改变我的configuration文件指出,直接。 但仍然不知道为什么它不会连接。

如何在Docker容器的tomcat 7中部署war文件

我不知道如何在Docker容器的帮助下将war文件部署到tomcat 7中。 在Windows操作系统中很容易,因为我们手动将项目的war文件粘贴到tomcat的webapps文件夹中,但是在docker容器的情况下,这有点困难。 我不知道如何更改tomcat的端口,并且由于docker容器的目录结构,在docker中的tomcat-users.xml文件中添加了angular色pipe理器。 以及如何在Docker中使用新更改端口号来启动tomcat。

下载只有build.gradle文件的依赖关系

是否有可能只使用build.gradle文件下载gradle依赖关系? 我想要完成的是以下内容: 我有一套unit testing,我想执行它们(作为CI过程的一部分)在docker集装箱内。 最初,我使用来自docker hub的openjdk:8-jdk镜像作为testing的基础镜像。 所以,docker撰写文件包含以下内容: version: '3.2' services: unit: image: openjdk:8-jdk volumes: – ..:/usr/test working_dir: /usr/test command: sh -c "exec ./gradlew junitPlatformTest -Punit -p moduleA/" 整个项目安装在容器内的/usr/test目录下。 当容器启动时,它会针对moduleA执行junitPlatformTest任务。 openjdk:8-jdk映像的问题在于,每次运行unit服务时都会下载gradle及其依赖关系。 为了解决这个问题,我决定创build一个新的图像,这个图像会有gradle和我已经下载的项目依赖项。 Dockerfile如下: FROM openjdk:8-jdk COPY . /usr/test WORKDIR /usr/test RUN apt-get -y install wget unzip RUN wget https://services.gradle.org/distributions/gradle-4.1-bin.zip RUN mkdir /opt/gradle RUN unzip -d /opt/gradle […]

关于OpenLRW部署到mongo docker实例的exception

解决了: 我必须运行泊坞窗图像没有 – 真… $ docker run -ti –rm -p 30000:27017 -v /srv/mongo:/data/db -e MONGOD_OPTIONS='–nojournal –smallfiles –noprealloc' arkadi/mongodb /sbin/my_init — bash -l 我有一个需求来实现一个学习logging存储(LRS)能够使用java或scala将数据保存到cassandra实例中。 我已经find了这个项目, https://github.com/Apereo-Learning-Analytics-Initiative/OpenLRW它使用mongo 2.6作为主后端,它是用java8和spring-boot编写的。 它看起来是一个很好的起点,我只需要将cassandra集成为新的依赖关系,构build一些连接器,但是当我尝试第一次运行时,我收到一个exception: Caused by: com.mongodb.MongoQueryException: Query failed with error code 13 and error message 'not authorized for query on test.tenant' on server 172.17.0.3:27017 at com.mongodb.connection.ProtocolHelper.getQueryFailureException(ProtocolHelper.java:131) at com.mongodb.connection.QueryProtocol.execute(QueryProtocol.java:303) at com.mongodb.connection.QueryProtocol.execute(QueryProtocol.java:54) at […]

Docker容器之间的JDBC连接(docker-compose)

我尝试将运行在tomcat 8上的Web应用程序连接到Oracle数据库。 它们都作为Docker容器运行: 泊坞窗,compose.yml: version: "3" services: appweb: build: ./app image: "servlet-search-app:0.1" ports: – "8888:8080" links: – appdb environment: – DATA_SOURCE_NAME="jdbc:oracle:thin:@appdb:1521/XE" appdb: build: ./db image: "servlet-search-db:0.1" ports: – "49160:22" – "1521:1521" – "8889:8080" 我的oracle数据库镜像的Dockerfile(build:./db): FROM wnameless/oracle-xe-11g ADD createUser.sql /docker-entrypoint-initdb.d/ ENV ORACLE_ALLOW_REMOTE=true Tomcat映像的Dockerfile(build:./app) FROM tomcat:8.0.20-jre8 COPY servlet.war /usr/local/tomcat/webapps/ COPY ojdbc14-1.0.jar /usr/local/tomcat/lib/ 所以应用程序按预期启动,但在尝试连接到数据库时引发exception: java.lang.IllegalStateException: java.sql.SQLException: Io exception: […]

了解tomcat docker文件

我正在看下面的tomcat docker文件: https://github.com/docker-library/tomcat/blob/5c8b74e495a1b63116b524407941b15eef58a7fe/8.0/jre8/Dockerfile 但是,它应该不指定一个操作系统作为基础的形象(例如Ubuntu,Debian等)? 我基本上只需要一个包含Ubuntu 16.x,Java 8和Tomcat 8的docker文件。但是不知道为什么我需要在上面的dockerfile中有很多行来完成。

DotCMSdockerMySQL 500

我正在尝试构build一个用于开发dotcms站点的docker-compose文件。 我有我的docker-compose.yml中的以下内容: version: "3" services: dotcms: image: openjdk command: /app/bin/startup.sh run ports: – 8080:8080 volumes: – ./:/app depends_on: – db db: image: mysql command: mysqld –character-set-server=utf8 –collation-server=utf8_unicode_ci –init-connect='SET NAMES UTF8;' –innodb-flush-log-at-trx-commit=0 –lower_case_table_names=1 volumes: – ./db:/var/lib/mysql ports: – 3308:3306 environment: MYSQL_ROOT_PASSWORD: dotcms MYSQL_DATABASE: dotcms MYSQL_USER: dotcms MYSQL_PASSWORD: dotcms 运行docker-compose up 当我尝试加载localhost:8080我得到一个500错误。 我看在dotcms database ,有一个名为db_version的表,但是这是所有的。 没有其他表格被创build。 我已经尝试删除dotcms数据库,然后再次运行dotcms […]

Apache kafka消费者对意外的消息进行无限循环轮询

我正在做卡夫卡消费者实施的集成testing。 我使用wurstmeister / kafka docker镜像和Apache Kafka客户端。 当我向某个主题发送“意外”消息时,嗡嗡的情景就是这样。 在运行模式下, kafkaConsumer.poll(POLLING_TIMEOUT)似乎进入无限循环。 当我debugging但是,当我暂停和运行时,它工作。 发送预期的消息时,我没有这个问题(不要在反序列化时抛出exception)。 这是我的kafka的docker docker-composeconfiguration: kafka: image: wurstmeister/kafka links: – zookeeper ports: – "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: localhost KAFKA_ADVERTISED_PORT: 9092 KAFKA_CREATE_TOPICS: "ProductLocation:1:1,ProductInformation:1:1,InventoryAvailableToSell:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: – /var/run/docker.sock:/var/run/docker.sock Java通用消费者: @Override public Collection<T> consume() { String eventToBePublishedName = ERROR_WHILE_RESETTING_OFFSET; boolean success = false; try { kafkaConsumer.resume(kafkaAssignments); if (isPollingTypeFull) { // […]

如何运行docker容器的localhost /已经存在的数据库,而不创build任何MySQL服务器?

我是docker的新手,我有一个简单的Java应用程序连接到localhost:3306上的数据库的jar文件localhost:3306 ,我不想创build任何新的dockermysql服务器,我想我的应用程序连接到我现有的数据库。 我想从docker运行这个jar子。 我的Dockerfile是 FROM java:8 COPY . /var/www/java WORKDIR /var/www/java CMD ["java", "-jar","exp.jar"] 但它显示错误 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) […]