mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-14 17:43:34 +08:00
Remove Dockerfile and docker.mk
Release Docker builds are now provided in a separate repository, https://github.com/timescale/timescaledb-docker. Tests and development builds for Docker are now provided by two new scripts in the scripts directory: - `docker-build.sh` to build a development image from current sources. - `docker-run-tests.sh` to run tests for current sources through a Docker container.
This commit is contained in:
parent
2a01ebca61
commit
3192c8a6bf
21
Dockerfile
21
Dockerfile
@ -1,21 +0,0 @@
|
||||
FROM postgres:9.6.3
|
||||
|
||||
MAINTAINER Timescale
|
||||
|
||||
ENV PG_MAJOR 9.6
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
daemontools \
|
||||
postgresql-server-dev-$PG_MAJOR \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN mkdir -p /build/{src,test/results}
|
||||
COPY sql /build/sql
|
||||
COPY src/*.c src/*.h build/src/
|
||||
COPY test/expected /build/test/
|
||||
COPY test/sql /build/test/
|
||||
COPY test/runner.sh /build/test/runner.sh
|
||||
COPY timescaledb.control /build/
|
||||
COPY Makefile build/Makefile
|
||||
RUN make -C /build install && rm -rf /build
|
27
docker.mk
27
docker.mk
@ -1,27 +0,0 @@
|
||||
IMAGE_NAME = timescaledb
|
||||
CONTAINER_NAME = timescaledb
|
||||
TEST_CONTAINER_NAME = $(CONTAINER_NAME)_testing
|
||||
MAKE = make
|
||||
PGPORT = 5432
|
||||
TEST_PGPORT = 6543
|
||||
TEST_TABLESPACE_PATH = /tmp/tspace1
|
||||
TEST_INSTANCE_OPTS = # clear this setting when running against existing Docker instance
|
||||
|
||||
build-image: Dockerfile
|
||||
@docker build . -t $(IMAGE_NAME)
|
||||
|
||||
start-container:
|
||||
@IMAGE_NAME=$(IMAGE_NAME) CONTAINER_NAME=$(CONTAINER_NAME) PGPORT=$(PGPORT) ./scripts/docker-run.sh
|
||||
|
||||
start-test-container:
|
||||
@IMAGE_NAME=$(IMAGE_NAME) CONTAINER_NAME=$(TEST_CONTAINER_NAME) \
|
||||
PGPORT=$(TEST_PGPORT) TEST_TABLESPACE_PATH=$(TEST_TABLESPACE_PATH) ./scripts/start-test-docker.sh
|
||||
|
||||
test: build-image start-test-container installcheck
|
||||
@docker rm -f $(TEST_CONTAINER_NAME)
|
||||
|
||||
run: build-image start-container
|
||||
|
||||
include Makefile
|
||||
|
||||
.PHONY: test start-container start-test-container build-image
|
29
scripts/docker-build.sh
Executable file
29
scripts/docker-build.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script builds a development TimescaleDB image from the
|
||||
# currently checked out source on the host.
|
||||
#
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
BASE_DIR=${PWD}/${SCRIPT_DIR}/..
|
||||
PG_IMAGE_TAG=${PG_IMAGE_TAG:-9.6.3-alpine}
|
||||
BUILD_CONTAINER_NAME=${BUILD_CONTAINER_NAME:-pgbuild}
|
||||
IMAGE_NAME=${IMAGE_NAME:-$USER/timescaledb}
|
||||
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD ${BASE_DIR} | awk '{print $1; exit}' | sed -e "s|/|_|g")
|
||||
|
||||
# Clean previous containers
|
||||
docker rm -f $(docker ps -a -q -f name=${BUILD_CONTAINER_NAME} 2>/dev/null) 2>/dev/null
|
||||
|
||||
# Run a Postgres container
|
||||
docker run -u postgres -d --name ${BUILD_CONTAINER_NAME} -v ${BASE_DIR}:/src postgres:${PG_IMAGE_TAG}
|
||||
|
||||
# Install build dependencies
|
||||
docker exec -u root -it ${BUILD_CONTAINER_NAME} /bin/bash -c "apk add --no-cache --virtual .build-deps coreutils dpkg-dev gcc libc-dev make util-linux-dev diffutils && mkdir -p /build"
|
||||
|
||||
# Build and install the extension
|
||||
docker exec -u root -it ${BUILD_CONTAINER_NAME} /bin/bash -c "cp -a /src/{src,sql,test,Makefile,timescaledb.control} /build/ && make -C /build clean && make -C /build install && echo \"shared_preload_libraries = 'timescaledb'\" >> /usr/local/share/postgresql/postgresql.conf.sample"
|
||||
|
||||
docker commit -a $USER -m "TimescaleDB development image" ${BUILD_CONTAINER_NAME} ${IMAGE_NAME}:${GIT_BRANCH}
|
||||
|
||||
echo
|
||||
echo "Built image ${IMAGE_NAME}:${GIT_BRANCH}"
|
||||
echo "Run 'docker run -d --name some-timescaledb -p 5432:5432 ${IMAGE_NAME}:${GIT_BRANCH}' to launch"
|
34
scripts/docker-run-tests.sh
Executable file
34
scripts/docker-run-tests.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script runs the TimescaleDB tests through a standard PostgreSQL
|
||||
# container, first installing the extension via a mounted host volume.
|
||||
#
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
BASE_DIR=${PWD}/${SCRIPT_DIR}/..
|
||||
PG_IMAGE_TAG=${PG_IMAGE_TAG:-9.6.3-alpine}
|
||||
CONTAINER_NAME=${CONTAINER_NAME:-pgtest}
|
||||
|
||||
case $1 in
|
||||
clean)
|
||||
docker rm -f $(docker ps -a -q -f name=${CONTAINER_NAME} 2>/dev/null) 2>/dev/null
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ $(docker ps -q -f name=${CONTAINER_NAME} 2>/dev/null | wc -l) = 0 ]; then
|
||||
echo "Creating container ${CONTAINER_NAME}"
|
||||
docker rm ${CONTAINER_NAME} 2>/dev/null
|
||||
# Run a Postgres container
|
||||
docker run -u postgres -d --name ${CONTAINER_NAME} -v ${BASE_DIR}:/src postgres:${PG_IMAGE_TAG}
|
||||
# Install build dependencies
|
||||
docker exec -u root -it ${CONTAINER_NAME} /bin/bash -c "apk add --no-cache --virtual .build-deps coreutils dpkg-dev gcc libc-dev make util-linux-dev diffutils && mkdir -p /build"
|
||||
fi
|
||||
|
||||
# Copy the source files to build directory
|
||||
docker exec -u root -it ${CONTAINER_NAME} /bin/bash -c "cp -a /src/{src,sql,test,Makefile,timescaledb.control} /build/ && make -C /build clean && make -C /build install"
|
||||
|
||||
# Run tests
|
||||
docker exec -u postgres -it ${CONTAINER_NAME} /bin/bash -c "make -C /build installcheck TEST_INSTANCE_OPTS='--temp-instance=/tmp/pgdata --temp-config=/build/test/postgresql.conf'"
|
||||
|
||||
if [ "$?" != "0" ]; then
|
||||
docker exec -it ${CONTAINER_NAME} cat /build/test/regression.diffs
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user