Код, работающий на Jenkins, не может подключиться к VERTICA - PullRequest
0 голосов
/ 14 апреля 2020

Я написал testContainer для Vertica.

public class VerticaContainer extends GenericContainer<VerticaContainer> {

  private final int HOST_PORT = 5433;
  private final int CONTAINER_PORT = 5433;

  private static final String DEFAULT_DOCKER_IMAGE = "jbfavre/vertica:latest";

  public VerticaTestContainer() {
    this(DEFAULT_DOCKER_IMAGE);
  }

  public VerticaTestContainer(String dockerImageName) {
    super(dockerImageName);
    this.addExposedPort(CONTAINER_PORT);
    this.addFixedExposedPort(HOST_PORT, CONTAINER_PORT);
  }
}

Конфиги Vertica:

VERTICA_DATABASE = "docker"
VERTICA_HOST = "127.0.0.1"
VERTICA_PORT = "5433"
VERTICA_USER = "dbadmin"
VERTICA_PASSWORD = ""
public Connection getConnection() throws ClassNotFoundException, SQLException {
    Class.forName("com.vertica.jdbc.Driver");
    String url = "jdbc:vertica://" + VERTICA_HOST + ":" + VERTICA_PORT + "/" + VERTICA_DATABASE + "?tcpKeepAlive=true";
    return DriverManager.getConnection(url, VERTICA_USER, VERTICA_PASSWORD);
  }

Отлично работает в локальной среде. Но когда тот же фрагмент кода построен на сервере Jenkins, он не может подключиться к Vertica с ошибкой ниже:

java.sql.SQLNonTransientConnectionException: [Vertica][VJDBC](100176) Failed to connect to host 127.0.0.1 on port 5433. Reason: Failed to establish a connection to the primary server or any backup address.
...