Skip to content

Commit fc5291f

Browse files
Krishna Harsha VooraLuis Sanchez
Krishna Harsha Voora
authored and
Luis Sanchez
committed
[FAB-1657] enable zookeeper on POWER & s390x
Use platform specific testenv image for POWER and s390x as base image inorder to build zookeeper, instead of using x86_64 specific zookeeper image for orderer kafka behave tests Change-Id: I3a42781234558581e14dcb2d1aabbc5593454852 Signed-off-by: Krishna Harsha Voora <[email protected]>
1 parent 18b4089 commit fc5291f

File tree

7 files changed

+86
-9
lines changed

7 files changed

+86
-9
lines changed

Makefile

+2-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ PROTOS = $(shell git ls-files *.proto | grep -v vendor)
6363
MSP_SAMPLECONFIG = $(shell git ls-files msp/sampleconfig/*.pem)
6464
GENESIS_SAMPLECONFIG = $(shell git ls-files common/configtx/test/*.template)
6565
PROJECT_FILES = $(shell git ls-files)
66-
IMAGES = peer orderer ccenv javaenv testenv runtime
66+
IMAGES = peer orderer ccenv javaenv testenv runtime zookeeper
6767

6868
pkgmap.peer := $(PKGNAME)/peer
6969
pkgmap.orderer := $(PKGNAME)/orderer
@@ -191,6 +191,7 @@ build/image/orderer/payload: build/docker/bin/orderer \
191191
orderer/orderer.yaml
192192
build/image/testenv/payload: build/gotools.tar.bz2
193193
build/image/runtime/payload: build/docker/busybox
194+
build/image/zookeeper/payload: images/zookeeper/docker-entrypoint.sh
194195

195196
build/image/%/payload:
196197
mkdir -p $@

bddtests/environments/kafka/docker-compose.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
version: '2'
22
services:
33
zookeeper:
4-
# Offical Apache ZooKeeper image. See https://hub.docker.com/_/zookeeper/
5-
image: zookeeper:3.4.9
4+
image: hyperledger/fabric-zookeeper
65

76
kafka:
87
build: .

bddtests/environments/orderer-1-kafka-1/docker-compose.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
version: '2'
22
services:
33
zookeeper:
4-
# Offical Apache ZooKeeper image. See https://hub.docker.com/_/zookeeper/
5-
image: zookeeper:3.4.9
4+
image: hyperledger/fabric-zookeeper
65

76
orderer0:
87
image: hyperledger/fabric-orderer

bddtests/environments/orderer-1-kafka-3/docker-compose.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
version: '2'
22
services:
33
zookeeper:
4-
# Offical Apache ZooKeeper image. See https://hub.docker.com/_/zookeeper/
5-
image: zookeeper:3.4.9
4+
image: hyperledger/fabric-zookeeper
65

76
orderer0:
87
image: hyperledger/fabric-orderer

bddtests/environments/orderer-n-kafka-n/docker-compose.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
version: '2'
22
services:
33
zookeeper:
4-
# Offical Apache ZooKeeper image. See https://hub.docker.com/_/zookeeper/
5-
image: zookeeper:3.4.9
4+
image: hyperledger/fabric-zookeeper
65

76
orderer:
87
build: ./orderer

images/zookeeper/Dockerfile.in

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM hyperledger/fabric-baseimage:_BASE_TAG_
2+
# Based on https://github.com/31z4/zookeeper-docker/blob/master/3.4.9/Dockerfile
3+
4+
# Install su-exec
5+
RUN set -x \
6+
&& git clone https://github.com/ncopa/su-exec /tmp/su-exec/ \
7+
&& cd /tmp/su-exec \
8+
&& make all \
9+
&& cp su-exec /usr/bin/
10+
11+
ENV ZOO_USER=zookeeper \
12+
ZOO_CONF_DIR=/conf \
13+
ZOO_DATA_DIR=/data \
14+
ZOO_DATA_LOG_DIR=/datalog \
15+
ZOO_PORT=2181 \
16+
ZOO_TICK_TIME=2000 \
17+
ZOO_INIT_LIMIT=5 \
18+
ZOO_SYNC_LIMIT=2
19+
20+
# Add a user and make dirs
21+
RUN set -x \
22+
&& useradd "$ZOO_USER" \
23+
&& mkdir -p "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR" \
24+
&& chown "$ZOO_USER:$ZOO_USER" "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR"
25+
26+
ARG GPG_KEY=C823E3E5B12AF29C67F81976F5CECB3CB5E9BD2D
27+
ARG DISTRO_NAME=zookeeper-3.4.9
28+
29+
# Download Apache Zookeeper, verify its PGP signature, untar and clean up
30+
RUN set -x \
31+
&& cd / \
32+
&& wget -q "http://www.apache.org/dist/zookeeper/$DISTRO_NAME/$DISTRO_NAME.tar.gz" \
33+
&& tar -xzf "$DISTRO_NAME.tar.gz" \
34+
&& mv "$DISTRO_NAME/conf/"* "$ZOO_CONF_DIR" \
35+
&& rm -r "$DISTRO_NAME.tar.gz"
36+
37+
WORKDIR $DISTRO_NAME
38+
VOLUME ["$ZOO_DATA_DIR", "$ZOO_DATA_LOG_DIR"]
39+
40+
EXPOSE $ZOO_PORT 2888 3888
41+
42+
ENV PATH=$PATH:/$DISTRO_NAME/bin \
43+
ZOOCFGDIR=$ZOO_CONF_DIR
44+
45+
COPY payload/docker-entrypoint.sh /
46+
ENTRYPOINT ["/docker-entrypoint.sh"]
47+
CMD ["zkServer.sh", "start-foreground"]

images/zookeeper/docker-entrypoint.sh

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# Allow the container to be started with `--user`
6+
if [ "$1" = 'zkServer.sh' -a "$(id -u)" = '0' ]; then
7+
chown -R "$ZOO_USER" "$ZOO_DATA_DIR" "$ZOO_DATA_LOG_DIR"
8+
exec su-exec "$ZOO_USER" "$0" "$@"
9+
fi
10+
11+
# Generate the config only if it doesn't exist
12+
if [ ! -f "$ZOO_CONF_DIR/zoo.cfg" ]; then
13+
CONFIG="$ZOO_CONF_DIR/zoo.cfg"
14+
15+
echo "clientPort=$ZOO_PORT" >> "$CONFIG"
16+
echo "dataDir=$ZOO_DATA_DIR" >> "$CONFIG"
17+
echo "dataLogDir=$ZOO_DATA_LOG_DIR" >> "$CONFIG"
18+
19+
echo "tickTime=$ZOO_TICK_TIME" >> "$CONFIG"
20+
echo "initLimit=$ZOO_INIT_LIMIT" >> "$CONFIG"
21+
echo "syncLimit=$ZOO_SYNC_LIMIT" >> "$CONFIG"
22+
23+
for server in $ZOO_SERVERS; do
24+
echo "$server" >> "$CONFIG"
25+
done
26+
fi
27+
28+
# Write myid only if it doesn't exist
29+
if [ ! -f "$ZOO_DATA_DIR/myid" ]; then
30+
echo "${ZOO_MY_ID:-1}" > "$ZOO_DATA_DIR/myid"
31+
fi
32+
33+
exec "$@"

0 commit comments

Comments
 (0)