This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch airflow-modifications in repository https://gitbox.apache.org/repos/asf/airflow-pgbouncer-exporter.git
commit b5e4d4c0d35ad6032aeea893c4e5c20c67eec531 Author: Jarek Potiuk <[email protected]> AuthorDate: Sat Jul 4 11:48:16 2020 +0200 Airflow modifications of the pgbouncer --- Dockerfile | 39 +++++++++++++++++++++++++--- build_and_push.sh | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0f1a02c..2e730a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,40 @@ -FROM iron/go -MAINTAINER Juraj Bubniak <[email protected]> +# 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 ALPINE_VERSION="3.12" + +FROM alpine:${ALPINE_VERSION} AS builder + +ARG PGBOUNCER_EXPORTER_VERSION +ARG AIRFLOW_PGBOUNCER_EXPORTER_VERSION +ARG GO_VERSION + +LABEL org.apache.airflow.component="pgbouncer-exporter" +LABEL org.apache.airflow.pgbouncer_exporter.version="${PGBOUNCER_EXPORTER_VERSION}" +LABEL org.apache.airflow.go.version="${GO_VERSION}" +LABEL org.apache.airflow.airflow_pgbouncer_exporter.version="${AIRFLOW_PGBOUNCER_EXPORTER_VERSION}" + +MAINTAINER "Apache Airflow Community <[email protected]>" + +RUN set -ex \ + && echo http://dl-cdn.alpinelinux.org/alpine/v3.7/main > /etc/apk/repositories \ + && echo http://dl-cdn.alpinelinux.org/alpine/v3.7/community >> /etc/apk/repositories \ + && apk upgrade --no-cache libressl libressl-dev COPY pgbouncer_exporter /bin -HEALTHCHECK CMD ["pgbouncer_exporter", "health"] +HEALTHCHECK CMD ["/bin/pgbouncer_exporter", "health"] -ENTRYPOINT ["pgbouncer_exporter"] +ENTRYPOINT ["/bin/pgbouncer_exporter"] CMD ["server"] diff --git a/build_and_push.sh b/build_and_push.sh new file mode 100755 index 0000000..91bf719 --- /dev/null +++ b/build_and_push.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +# 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. +set -eu +DOCKERHUB_USER=${DOCKERHUB_USER:="apache"} +DOCKERHUB_REPO=${DOCKERHUB_REPO:="airflow"} +PGBOUNCER_EXPORTER_VERSION="0.5.0" +AIRFLOW_PGBOUNCER_EXPORTER_VERSION="2020.07.10" +EXPECTED_GO_VERSION="1.14.4" + +cd "$( dirname "${BASH_SOURCE[0]}" )" || exit 1 + +CURRENT_GO_VERSION=$("go${EXPECTED_GO_VERSION}" version 2>/dev/null | awk '{ print $3 }' 2>/dev/null) + +if [[ ${CURRENT_GO_VERSION} == "" ]]; then + CURRENT_GO_VERSION=$(go version 2>/dev/null | awk '{ print $3 }' 2>/dev/null) + GO_BIN=$(command -v go 2>/dev/null) +else + GO_BIN=$(command -v go${EXPECTED_GO_VERSION} 2>/dev/null) +fi + +if [[ ${CURRENT_GO_VERSION} == "" ]]; then + echo "ERROR! You have no go installed" + echo + echo "Please install go${EXPECTED_GO_VERSION} to build the package" + echo + echo "You need to have golang installed. Follow https://golang.org/doc/install" + echo +fi + +if [[ ${CURRENT_GO_VERSION} != "go${EXPECTED_GO_VERSION}" ]]; then + echo "ERROR! You have unexpected version of go in the path ${CURRENT_GO_VERSION}" + echo + echo "Make sure you have go${EXPECTED_GO_VERSION} installed:" + echo + echo " go get golang.org/dl/go${EXPECTED_GO_VERSION}" + echo + echo " go${EXPECTED_GO_VERSION} download" + echo + echo "You might need to add ${HOME}/go/bin to your PATH" + echo + exit 1 +fi + + +# Needs to be set for alpine images to run net package of GO +export CGO_ENABLED=0 +rm pgbouncer_exporter + +"${GO_BIN}" get ./... +"${GO_BIN}" build + +TAG="${DOCKERHUB_USER}/${DOCKERHUB_REPO}:airflow-pgbouncer-exporter-${AIRFLOW_PGBOUNCER_EXPORTER_VERSION}-${PGBOUNCER_EXPORTER_VERSION}" + +docker build . \ + --pull \ + --build-arg "PGBOUNCER_EXPORTER_VERSION=${PGBOUNCER_EXPORTER_VERSION}" \ + --build-arg "AIRFLOW_PGBOUNCER_EXPORTER_VERSION=${AIRFLOW_PGBOUNCER_EXPORTER_VERSION}"\ + --build-arg "GO_VERSION=${CURRENT_GO_VERSION}" \ + --tag "${TAG}" + +docker push "${TAG}"
