# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. ARG BASE_IMAGE_VERSION=latest ARG DATASKETCHES_CPP_HASH=8135b65408947694e13bd131038889e439847aa2 ARG DATASKETCHES_CPP_VERSION=3.1.0 FROM postgres:$BASE_IMAGE_VERSION MAINTAINER dev@datasketches.apache.org ENV APACHE_DIST_URLS \ https://www.apache.org/dyn/closer.cgi?action=download&filename= \ https://www-us.apache.org/dist/ \ https://www.apache.org/dist/ \ https://archive.apache.org/dist/ ARG DATASKETCHES_CPP_VERSION ARG DATASKETCHES_CPP_HASH ENV DS_CPP_VER=$DATASKETCHES_CPP_VERSION ENV DS_CPP_HASH=$DATASKETCHES_CPP_HASH ADD . /datasketches-postgresql WORKDIR /datasketches-postgresql RUN echo "===> Adding prerequisites..." && \ export PG_MAJOR=`apt list --installed 2>&1 | sed -n "s/^postgresql-\([0-9.]*\)\/.*/\1/p"` && \ export PG_MINOR=`apt list --installed 2>&1 | sed -n "s/^postgresql-$PG_MAJOR\/\S*\s\(\S*\)\s.*/\1/p"` && \ apt-get update -y && \ DEBIAN_FRONTEND=noninteractive \ apt-get install --no-install-recommends --allow-downgrades -y -q \ ca-certificates \ build-essential wget unzip \ libboost-all-dev \ postgresql-server-dev-$PG_MAJOR=$PG_MINOR \ libpq-dev=$PG_MINOR && \ \ \ echo "===> Building datasketches..." && \ set -eux; \ download_bin() { \ local f="$1"; shift; \ local hash="$1"; shift; \ local distFile="$1"; shift; \ local success=; \ local distUrl=; \ for distUrl in $APACHE_DIST_URLS; do \ if wget -nv -O "$f" "$distUrl$distFile"; then \ success=1; \ # Checksum the download \ echo "$hash" "*$f" | sha1sum -c -; \ break; \ fi; \ done; \ [ -n "$success" ]; \ } && \ download_bin "datasketches-cpp.zip" "$DS_CPP_HASH" "datasketches/cpp/$DS_CPP_VER/apache-datasketches-cpp-$DS_CPP_VER-src.zip" && \ unzip datasketches-cpp.zip && \ mv apache-datasketches-cpp-$DS_CPP_VER-src datasketches-cpp && \ make && \ make install && \ \ \ echo "===> Clean up..." && \ apt-mark hold postgresql-$PG_MAJOR postgresql-client-$PG_MAJOR && \ apt-get -y remove --purge --auto-remove \ ca-certificates \ build-essential wget unzip \ postgresql-server-dev-$PG_MAJOR libpq-dev && \ apt-get clean && \ rm -rf /datasketches-postgresql /var/lib/apt/lists/* /tmp/* /var/tmp/* ADD /docker-entrypoint-initdb.d /docker-entrypoint-initdb.d