使用Dockerfile时,psql未连接到timescaleDB容器

nwwlzxa7  于 2023-01-25  发布在  Docker
关注(0)|答案(1)|浏览(137)

我在Docker中按时间刻度b工作。
我的停靠文件是:

# Pull in the latest TimescaleDB image
FROM timescale/timescaledb:latest-pg14

RUN psql -U postgres -c "CREATE TABLE IF NOT EXISTS raw_table ...

我在最后一行遇到此错误:

#0 0.192 psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
#0 0.192    Is the server running locally and accepting connections on that socket?

我检查了一些解决方案,如wait_for_it. sh,并给予psql一些时间来开发,但它不起作用(听起来也不是一个好计划)。
我也看了一些类似的问题,如this,但我不确定它是否正是我所寻找的,它给出了这样的解决方案:

docker run -p 5432:5432 -v /var/run/postgresql:/var/run/postgresql -d --name postgres postgres

因此,为了在docker-compose.yml中模拟它(我需要使用它),我所做的是:

db:
    build: 
      context: 'timescaleDB/'
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_PASSWORD=password
    volumes:
      - /var/run/postgresql:/var/run/postgresql

但是,它没有解决错误。

yhxst69z

yhxst69z1#

看看timescale/timescaledb docker映像是如何执行its own initialization of its database的。
您的Docker文件将包括:

# Pull in the latest TimescaleDB image
FROM timescale/timescaledb:latest-pg14

COPY 002_custom_db_setup.sh /docker-entrypoint-initdb.d/002_custom_db_setup.sh

002_custom_db_setup.sh是一个bash脚本,其中您可以调用psql

#!/usr/bin/env bash

psql -U postgres -c "CREATE TABLE IF NOT EXISTS raw_table ..."

相关问题