Tag: Java

为docker-client for java设置docker中容器的端口

我不能在docker中为容器设置publicPort和privatePort。 我创builddocker容器与Java库docker-client为Java https://github.com/spotify/docker-client 我已经在本地创build了一个docker镜像“mobillogix / selenium-chrome”。 DockerClient docker = DefaultDockerClient.fromEnv()。build(); // Bind container ports to host ports final String[] ports = {"44444", "59004"}; final String[] ports1 = {"4444", "5900"}; final Map<String, List<PortBinding>> portBindings = new HashMap<String, List<PortBinding>>(); for (String port : ports) { List<PortBinding> hostPorts = new ArrayList<PortBinding>(); hostPorts.add(PortBinding.of("0.0.0.0", port)); portBindings.put(port, hostPorts); } final HostConfig […]

Docker容器与2个应用程序进行交互

我目前有一个容器中的Java应用程序(.jar),我正在使用docker-compose.yml在第二个容器中创build一个mysql数据库的实例。 我想知道是否有可能容器1能够与容器2 interect,并能够读取/写入和从mysql数据库 如果可能的话,我会怎么做呢?

使用Kafka,Zookeeper和MongoDB Dockerize Spring Boot Java应用程序

一般来说,我是Docker和Web应用程序的初学者。 我必须Dockerize一个使用Kafka,Zookeeper和MongoDB的大型Spring Boot Java应用程序。 它也使用Gradle构build工具。 什么是最好的方法来Dockerize这个应用程序? 我应该Dockerize在一个图像,或每个组件的一个单独的图像? 另外,如何在Dockerfile中joinGradle构build工具? 谢谢!

java.lang.StackOverflowError在pio列车阶段

pio train (在成功的pio build )给了我这样一个错误: [ERROR] [Executor] Exception in task 0.0 in stage 39.0 (TID 34) [WARN] [TaskSetManager] Lost task 0.0 in stage 39.0 (TID 34, localhost): java.lang.StackOverflowError at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2321) at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2614) at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2624) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1321) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) at scala.collection.immutable.$colon$colon.readObject(List.scala:362) at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1909) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) […]

Docker撰写JVM参数

我编写了一个java应用程序,它接受一个环境variables,它需要一个参数来为JWT令牌salt键设置一个键。 有没有办法让我在Docker Compose中传递命令variables? java -Djava.security.egd=file:/dev/./urandom -jar /user-profile-api.jar –key=blah 然后运行Docker镜像 docker run -p 8080:8080 docker_image –key=blah

具有节点,java和Dynamodblocal的Dockerfile

我正在尝试创build一个包含以下内容的docker文件 的NodeJS java(jre) Dynamodb本地 到目前为止,我能够通过节点完成Node部分:氩气,但不知道如何完成剩下的工作。 这就是我的Dockerfile的样子 FROM node:argon # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app/ RUN npm install # # Bundle app source COPY . /usr/src/app EXPOSE 3000 CMD [ "npm", "start" ] 有人可以告诉我如何获得java(jre)和dynamodblocal在这个相同的图像。 我知道理想情况下,你应该有一个单独的容器dynamodbocal,但我认为dynamodblocal只能通过本地主机访问。

Java Web应用程序和PostgreSQL上的Websphere自由

我正在Docker上的websphere-liberty上部署一个可用的Tomcat webapp。 该Web应用程序连接到docker上的postgres数据源。 在websphere中,当我试图获得连接 DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/postgres"); Connection conn = ds.getConnection(); 我的web.xml被设置为: <resource-ref> <description>postgreSQL Connection</description> <res-ref-name>jdbc/postgres</res-ref-name> <res-type>javax.sql.XADataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 我得到以下错误 javax.naming.NamingException: CWNEN1001E: The object referenced by the java:comp/env/jdbc/postgres JNDI name could not be instantiated. If the reference name maps to a JNDI name in the deployment descriptor bindings for the application performing the JNDI […]

运行使用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。 我怀疑没有必要连接到主机(外部容器)。

Dockerizing Spring应用程序

我有一个使用Spring框架+ AngularJs前端工作的应用程序。 我以前只需将mvn package到.war文件中,就可以将其部署到亚马逊AWS上。 现在我需要在docker中设置一个linux env来debugging一些额外的function(使用windows作为主操作系统),最好在将来部署这个docker容器。 我看过一些关于Docker化Spring Boot应用程序的文章。 这是spring.io的示例dockerfile FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD gs-spring-boot-docker-0.1.0.jar app.jar RUN sh -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 我的问题是 – 如何在Docker容器上运行我的.war文件 ?

泊坞窗。 使用基于主机ID的许可证运行软件

我正在开发一个用Java实现的新产品,需要运行许可证。 许可证validation基于服务器ID。 如果我直接在Linux服务器上运行它,这不是一个问题。 但是,我想提供在Docker中运行我的软件的选项,但问题是,我不知道如何从docker容器获取主机ID。 我不想使用docker容器ID,因为客户可能需要重新创build它(例如对于软件更新),所以我需要知道主机服务器的ID。 我想过使用MAC地址,但它需要使用“–net = host”选项来运行容器,由于安全原因,我想避免使用该选项。