8000 Add docker-compose config for tap-tests. · postgrespro/postgres_cluster@21c5aba · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 21c5aba

Browse files
committed
Add docker-compose config for tap-tests.
1 parent 4c799f7 commit 21c5aba

File tree

3 files changed

+136
-0
lines changed

3 files changed

+136
-0
lines changed

contrib/mmts/docker/Dockerfile

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# vim:set ft=dockerfile:
2+
FROM debian:jessie
3+
4+
# explicitly set user/group IDs
5+
RUN groupadd -r postgres --gid=999 && useradd -r -g postgres --uid=999 postgres
6+
7+
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
8+
9+
RUN apt-get update && apt-get install -y \
10+
make \
11+
gcc \
12+
libreadline-dev \
13+
bison \
14+
flex \
15+
zlib1g-dev \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
RUN mkdir /pg
19+
RUN chown postgres:postgres /pg
20+
21+
USER postgres
22+
23+
WORKDIR /pg
24+
ENV CFLAGS -O0
25+
RUN git clone -b master https://github.com/postgrespro/postgres_cluster.git --depth 1
26+
27+
WORKDIR /pg/postgres_cluster
28+
RUN ./configure --enable-cassert --enable-debug --prefix /usr/local
29+
RUN make -j 4
30+
USER root
31+
RUN make install
32+
RUN make -C contrib/raftable install
33+
RUN make -C contrib/mmts install
34+
35+
RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql
36+
37+
ENV PATH /usr/local/bin:$PATH
38+
ENV PGDATA /var/run/postgresql/data
39+
40+
COPY docker-entrypoint.sh /
41+
42+
USER postgres
43+
ENTRYPOINT ["/docker-entrypoint.sh"]
44+
45+
EXPOSE 5432
46+
EXPOSE 5431
47+
CMD ["postgres"]
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
version: '2'
2+
3+
networks:
4+
clusternet:
5+
driver: bridge
6+
ipam:
7+
driver: default
8+
config:
9+
- subnet: 10.0.0.0/24
10+
11+
services:
12+
node1:
13+
build: .
14+
networks:
15+
clusternet:
16+
ipv4_address: 10.0.0.10
17+
environment:
18+
NODEID: '1'
19+
CONNS: 'dbname=postgres host=10.0.0.10 port=5432,dbname=postgres host=10.0.0.20 port=5432,dbname=postgres host=10.0.0.30 port=5432'
20+
PEERS: '1:10.0.0.10:5431,2:10.0.0.20:5431,3:10.0.0.30:5431'
21+
ports:
22+
- "5432:5432"
23+
- "5431:5431"
24+
node2:
25+
build: .
26+
networks:
27+
clusternet:
28+
ipv4_address: 10.0.0.20
29+
environment:
30+
NODEID: '2'
31+
CONNS: 'dbname=postgres host=10.0.0.10 port=5432,dbname=postgres host=10.0.0.20 port=5432,dbname=postgres host=10.0.0.30 port=5432'
32+
PEERS: '1:10.0.0.10:5431,2:10.0.0.20:5431,3:10.0.0.30:5431'
33+
ports:
34+
- "5434:5432"
35+
- "5433:5431"
36+
node3:
37+
build: .
38+
networks:
39+
clusternet:
40+
ipv4_address: 10.0.0.30
41+
environment:
42+
NODEID: '3'
43+
CONNS: 'dbname=postgres host=10.0.0.10 port=5432,dbname=postgres host=10.0.0.20 port=5432,dbname=postgres host=10.0.0.30 port=5432'
44+
PEERS: '1:10.0.0.10:5431,2:10.0.0.20:5431,3:10.0.0.30:5431'
45+
ports:
46+
- "5436:5432"
47+
- "5435:5431"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
set -e
3+
4+
mkdir -p "$PGDATA"
5+
chmod 700 "$PGDATA"
6+
chown -R postgres "$PGDATA"
7+
8+
chmod g+s /run/postgresql
9+
chown -R postgres /run/postgresql
10+
11+
initdb
12+
13+
cat >> "$PGDATA/pg_hba.conf" <<-EOF
14+
host all all 0.0.0.0/0 trust
15+
local replication all trust
16+
host replication all 0.0.0.0/0 trust
17+
EOF
18+
19+
cat >> "$PGDATA/postgresql.conf" <<-EOF
20+
listen_addresses = '*'
21+
unix_socket_directories = ''
22+
port = 5432
23+
max_prepared_transactions = 200
24+
max_connections = 200
25+
max_worker_processes = 100
26+
wal_level = logical
27+
fsync = off
28+
max_wal_senders = 10
29+
wal_sender_timeout = 0
30+
max_replication_slots = 10
31+
shared_preload_libraries = 'raftable,multimaster'
32+
multimaster.workers = 10
33+
multimaster.queue_size = 10485760 # 10mb
34+
multimaster.node_id = $NODEID
35+
multimaster.conn_strings = '$CONNS'
36+
multimaster.use_raftable = true
37+
multimaster.ignore_tables_without_pk = true
38+
raftable.id = $NODEID
39+
raftable.peers = '$PEERS'
40+
EOF
41+
42+
"$@"

0 commit comments

Comments
 (0)
0