2017-07-18 81 views
0

我想用Wildfly Swarm,Docker和PostgreSQL作爲數據庫來構建一個簡單的休息服務。Docker容器上連接Postgres數據源的蜻蜓蟲錯誤

該應用程序在localhost上運行良好(沒有docker)。

我在使用上泊塢窗基礎數據源連接數據庫的問題

這是我docker.compose.yml

version: '3' 

services: 

    web: 
    build: . 
    depends_on: 
     - db 

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

我的Web 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

回答

2

嘗試增加-Djava.net.preferIPv4Stack=true到多克爾切入點,即

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

並請複製並粘貼錯誤的文本而不是張貼屏幕截圖。沒有人在未來尋找類似的問題將能夠找到它,因爲它是一個屏幕截圖。

+0

夥計,希望我可以付給你一杯啤酒 –