gpt4 book ai didi

java - Wildfly Swarm 在 Docker 容器上连接 Postgres 数据源时出错

转载 作者:行者123 更新时间:2023-12-02 02:42:39 25 4
gpt4 key购买 nike

我正在尝试使用 Wildfly Swarm、Docker 和 PostgreSQL 作为数据库构建一个简单的休息服务。

该应用程序在本地主机上运行良好(没有 Docker)。

我在使用 Docker 基础设施上的数据源连接数据库时遇到问题

这是我的docker.compose.yml:

version: '3'

services:

web:
build: .
depends_on:
- db

db:
build: ./db
ports:
- "5432:5432"

我的网站Dockerfile:

FROM fabric8/java-jboss-openjdk8-jdk:1.2.3

ENV AB_OFF true

ADD megasindico-billing-api-swarm.jar /opt/megasindico-billing-api-swarm.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/opt/megasindico-billing-api-swarm.jar"]

PostgreSQL Dockerfile:

FROM postgres:9.4-alpine

ENV POSTGRES_USER=admin
ENV POSTGRES_PASSWORD=admin

project-defaults.yml 是配置我的数据源的位置:

swarm:
datasources:
data-sources:
### [datasource]
megasindico-billing-ds:
driver-name: postgresql
connection-url: jdbc:postgresql://db/postgres
user-name: admin
password: admin

这是 persistence.xml 的样子:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">

<persistence-unit name="megasindico-billing-ds" transaction-type="RESOURCE_LOCAL">

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.hbm2ddl.import_files" value="scripts/reset.sql"/>
<property name="hibernate.connection.useUnicode" value="true" />
<property name="hibernate.connection.characterEncoding" value="UTF-8" />
</properties>

</persistence-unit>

</persistence>

该应用程序是使用mvn clean package命令构建的。

为了构建图像,我使用 build.sh 文件:

#!/usr/bin/env bash

# Copy jar file to this directory
cp ../target/megasindico-billing-api-swarm.jar megasindico-billing-api-swarm.jar

# Build Docker image
docker-compose build

# Remove temp file
rm -rf megasindico-billing-api-swarm.jar

之后,我执行docker-compose up命令来运行图像。

我收到的错误如下: error part 1

error part 2

最佳答案

尝试将 -Djava.net.preferIPv4Stack=true 添加到 Docker 入口点,即

ENTRYPOINT ["java", "-jar", "/opt/megasindico-billing-api-swarm.jar", "-Djava.net.preferIPv4Stack=true"]

请复制并粘贴错误文本,而不是发布屏幕截图。将来搜索类似问题的人将无法找到它,因为它是屏幕截图。

关于java - Wildfly Swarm 在 Docker 容器上连接 Postgres 数据源时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com