diff options
author | Joseph Hunkeler <jhunkeler@users.noreply.github.com> | 2019-02-14 16:30:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-14 16:30:57 -0500 |
commit | 813d63b5872dcfa71cdf86f8f8bcdd0c2dcdd0c6 (patch) | |
tree | 29089e845b4ce199d9b57ae703b2e9fae7c83a5c | |
parent | 25a0506f23674ea08d0e4c38781a5895d55fced2 (diff) | |
parent | 777ff94eeaa8416df9263525393fc8678515ab7f (diff) | |
download | docker-base-813d63b5872dcfa71cdf86f8f8bcdd0c2dcdd0c6.tar.gz |
Merge pull request #1 from jhunkeler/subtle-fun1.0.0
Subtle fun
-rw-r--r-- | Dockerfile | 23 | ||||
-rw-r--r-- | LATEST | 1 | ||||
-rwxr-xr-x | build.sh | 66 |
3 files changed, 73 insertions, 17 deletions
@@ -2,6 +2,11 @@ FROM centos:6.9 LABEL maintainer="jhunk@stsci.edu" \ vendor="Space Telescope Science Institute" +ARG USER_ACCT=${USER_ACCT:-developer} +ARG USER_HOME=/home/${USER_ACCT} +ARG USER_UID=${USER_UID:-1000} +ARG USER_GID=${USER_GID:-1000} + ENV TOOLCHAIN="/opt/toolchain" ENV TOOLCHAIN_BIN="${TOOLCHAIN}/bin" ENV TOOLCHAIN_LIB="${TOOLCHAIN}/lib" @@ -12,21 +17,14 @@ ENV TOOLCHAIN_MAN="${TOOLCHAIN_DATA}/man" ENV TOOLCHAIN_PKGCONFIG="${TOOLCHAIN_LIB}/pkgconfig" ENV TOOLCHAIN_BUILD="/opt/buildroot" -ENV PATH="${TOOLCHAIN_BIN}:${PATH}" -ENV CFLAGS="-I${TOOLCHAIN_INCLUDE}" -ENV LDFLAGS="-L${TOOLCHAIN_LIB} -Wl,-rpath=${TOOLCHAIN_LIB}" -ENV PKG_CONFIG_PATH="${TOOLCHAIN_PKGCONFIG}" - -ARG PYTHON_VERSION=${PYTHON_VERSION:-3.7.1} -ARG USER_ACCT=${USER_ACCT:-developer} -ARG USER_HOME=/home/${USER_ACCT} -ARG USER_UID=${USER_UID:-1000} -ARG USER_GID=${USER_GID:-1000} - ENV USER_ACCT=${USER_ACCT} \ USER_HOME=${USER_HOME} \ USER_UID=${USER_UID} \ USER_GID=${USER_GID} \ + PATH="${TOOLCHAIN_BIN}:${PATH}" \ + CFLAGS="-I${TOOLCHAIN_INCLUDE}" \ + LDFLAGS="-L${TOOLCHAIN_LIB} -Wl,-rpath=${TOOLCHAIN_LIB}" \ + PKG_CONFIG_PATH="${TOOLCHAIN_PKGCONFIG}" \ LC_ALL=en_US.UTF-8 \ LANG=en_US.UTF-8 \ LANGUAGE=en_US.UTF-8 @@ -44,7 +42,7 @@ RUN groupadd -g ${USER_GID} ${USER_ACCT} \ gcc \ gcc-c++ \ gcc-gfortran \ - glibc \ + glibc-devel \ make \ perl \ pkgconfig \ @@ -52,6 +50,7 @@ RUN groupadd -g ${USER_GID} ${USER_ACCT} \ wget \ which \ zlib-devel \ + xz \ && yum clean all WORKDIR "${TOOLCHAIN_BUILD}" @@ -0,0 +1 @@ +1.0.0 @@ -1,9 +1,65 @@ #!/bin/bash -PROJECT=astroconda/base -VERSION="${1}" -if [[ -z ${VERSION} ]]; then - echo "Project version required [e.g. 1.2.3]" +set -x +HUB=${3:-astroconda} +PROJECT=${HUB}/base +PROJECT_VERSION="${1}" +TAGS=() + +if [[ -z ${PROJECT_VERSION} ]]; then + echo "Project version required [e.g. 1.2.3... \$(git describe)]" exit 1 fi -docker build -t ${PROJECT}:latest -t ${PROJECT}:${VERSION} . +read \ + PROJECT_VERSION_MAJOR \ + PROJECT_VERSION_MINOR \ + PROJECT_VERSION_PATCH <<< ${PROJECT_VERSION//\./ } + +case "${HUB}" in + *amazonaws\.com) + if ! type -p aws; then + echo "awscli client not installed" + exit 1 + fi + REGION="$(awk -F'.' '{print $(NF-2)}' <<< ${HUB})" + $(aws ecr get-login --no-include-email --region ${REGION}) + unset REGION + ;; + *) + # Assume default index + docker login + ;; +esac + +TAGS+=( "-t ${PROJECT}:${PROJECT_VERSION}" ) +is_tag_latest=$([[ -f LATEST ]] && [[ $(<LATEST) == ${PROJECT_VERSION} ]] && echo yes) +if [[ -n ${is_tag_latest} ]]; then + TAGS+=( "-t ${PROJECT}:latest" ) + TAGS+=( "-t ${PROJECT}:${PROJECT_VERSION_MAJOR}" ) + TAGS+=( "-t ${PROJECT}:${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" ) +fi + +docker build ${TAGS[@]} . +rv=$? + +if (( rv > 0 )); then + echo "Failed... Image not published" + exit $? +fi + + +max_retry=4 +retry=0 +set +e +while (( retry != max_retry )) +do + echo "Push attempt #$(( retry + 1 ))" + docker push "${PROJECT}" + rv=$? + if [[ ${rv} == 0 ]]; then + break + fi + (( retry++ )) +done + +exit ${rv} |