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
命令來獲取圖像運行。
夥計,希望我可以付給你一杯啤酒 –