无法获得通过unix套接字连接到postgres的飞行路线

问题描述

我通过尝试通过docker-entrypoint-initdb.d中的初始化脚本运行飞行路线迁移来扩展docker postgres映像。

正如here所指出的,在初始化阶段,数据库仅在unix套接字上列出。

我无法通过unix套接字连接到数据库,因此无法运行flyway migration,只能不断获取以下信息的变化:

GestureDetector

WARNING: Connection error: Connection to :5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. (Caused by Connection refused (Connection refused)) retrying in 1 sec...

Dockerfile

FROM postgres:10.14-alpine ENV POSTGRES_USER=postgres ENV POSTGRES_PASSWORD=password ENV POSTGRES_DB=mydb ENV FLYWAY_VERSION="6.0.8" ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk/jre ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin ENV JAVA_VERSION 8u181 ENV JAVA_ALPINE_VERSION 8.252.09-r0 RUN { \ echo '#!/bin/sh'; \ echo 'set -e'; \ echo; \ echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ } > /usr/local/bin/docker-java-home \ && chmod +x /usr/local/bin/docker-java-home RUN set -x \ && apk add --no-cache \ openjdk8-jre="$JAVA_ALPINE_VERSION" \ && [ "$JAVA_HOME" = "$(docker-java-home)" ] # Install Flyway workdir /flyway RUN apk --no-cache add --update bash openssl \ && wget https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${FLYWAY_VERSION}/flyway-commandline-${FLYWAY_VERSION}.tar.gz \ && tar -xzf flyway-commandline-${FLYWAY_VERSION}.tar.gz \ && mv flyway-${FLYWAY_VERSION}/* . \ && rm flyway-commandline-${FLYWAY_VERSION}.tar.gz \ && ln -s /flyway/flyway /usr/local/bin/flyway # Change ownership of flyway to postgres user RUN chown postgres /flyway/flyway # copy flyway sql migrations and configuration copY flyway-sql-migrations/sql_migrations /flyway/sql_migrations copY test-utils/flyway.conf /flyway/flyway.conf # copy flyway initialization script copY test-utils/flyway-migrate.sh /docker-entrypoint-initdb.d/flyway-migrate.sh

flyway-migrate.sh

#!/bin/sh flyway -configFiles=/flyway/flyway.conf migrate

flyway.conf

经过研究和咨询these posts(相同的问题,已确定问题,但未给出答案),我尝试连接以下flyway.url字符串变体,但未成功:

flyway.url=jdbc:postgresql://:5432/mydb
flyway.user=postgres
flyway.password=password
flyway.locations=filesystem:/flyway/sql_migrations
flyway.table=flyway_schema_history
flyway.connectRetries=60

有人对如何配置JDBC URL有什么建议,以便在初始化阶段可以将flyway连接到postgresql吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)