我尝试使用 postgres 插件设置无人机服务器,但我完全无法让它工作。
我所做的是从文档中复制默认的无人机设置:
---
kind: pipeline
type: docker
name: default
steps:
- name: test
image: postgres:9-alpine
commands:
- sleep 5 #give the service some time to start
- psql -U postgres -d test
services:
- name: database
image: postgres:9-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: test
但是我在尝试启动它时收到以下错误
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
我的猜测是,由于某种原因,postgres没有开始,但很难说。
这是Postgres日志:
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... UTC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
sh: locale: not found
performing post-bootstrap initialization ... No usable system locales were found.
Use the option "--debug" to see details.
ok
syncing data to disk ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /var/lib/postgresql/data -l logfile start
waiting for server to start....LOG: database system was shut down at 2020-05-27 08:49:09 UTC
LOG: MultiXact member wraparound protections are now enabled
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
done
server started
CREATE DATABASE
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
LOG: received fast shutdown request
LOG: aborting any active transactions
LOG: autovacuum launcher shutting down
LOG: shutting down
waiting for server to shut down....LOG: database system is shut down
done
server stopped
PostgreSQL init process complete; ready for start up.
LOG: database system was shut down at 2020-05-27 08:49:11 UTC
LOG: MultiXact member wraparound protections are now enabled
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
无论是那个还是Postgres启动正常,但在其他进程有机会通信之前,有些东西会杀死它。不过我不完全确定。
任何帮助将不胜感激。
Drone 在自己的容器中启动具有自己主机名的服务。
在您的情况下,您database
命名了服务,因此在与psql
连接时,您需要传递主机名,以便psql
通过 TCP 与容器建立连接:
psql -U postgres -d test -h database