diff --git a/2.1/Dockerfile b/2.1/Dockerfile index 35ddd61..7b87a4d 100644 --- a/2.1/Dockerfile +++ b/2.1/Dockerfile @@ -132,8 +132,9 @@ RUN set -ex; \ # https://issues.apache.org/jira/browse/CASSANDRA-11661 sed -ri 's/^(JVM_PATCH_VERSION)=.*/\1=25/' "$CASSANDRA_CONFIG/cassandra-env.sh" -COPY docker-entrypoint.sh /docker-entrypoint.sh -ENTRYPOINT ["/docker-entrypoint.sh"] +COPY docker-entrypoint.sh /usr/local/bin/ +RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] RUN mkdir -p /var/lib/cassandra "$CASSANDRA_CONFIG" \ && chown -R cassandra:cassandra /var/lib/cassandra "$CASSANDRA_CONFIG" \ diff --git a/2.1/docker-entrypoint.sh b/2.1/docker-entrypoint.sh index 16d183a..151adad 100755 --- a/2.1/docker-entrypoint.sh +++ b/2.1/docker-entrypoint.sh @@ -2,7 +2,8 @@ set -e # first arg is `-f` or `--some-option` -if [ "${1:0:1}" = '-' ]; then +# or there are no args +if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then set -- cassandra -f "$@" fi diff --git a/2.2/Dockerfile b/2.2/Dockerfile index 86013fb..c538f57 100644 --- a/2.2/Dockerfile +++ b/2.2/Dockerfile @@ -132,8 +132,9 @@ RUN set -ex; \ # https://issues.apache.org/jira/browse/CASSANDRA-11661 sed -ri 's/^(JVM_PATCH_VERSION)=.*/\1=25/' "$CASSANDRA_CONFIG/cassandra-env.sh" -COPY docker-entrypoint.sh /docker-entrypoint.sh -ENTRYPOINT ["/docker-entrypoint.sh"] +COPY docker-entrypoint.sh /usr/local/bin/ +RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] RUN mkdir -p /var/lib/cassandra "$CASSANDRA_CONFIG" \ && chown -R cassandra:cassandra /var/lib/cassandra "$CASSANDRA_CONFIG" \ diff --git a/2.2/docker-entrypoint.sh b/2.2/docker-entrypoint.sh index 16d183a..151adad 100755 --- a/2.2/docker-entrypoint.sh +++ b/2.2/docker-entrypoint.sh @@ -2,7 +2,8 @@ set -e # first arg is `-f` or `--some-option` -if [ "${1:0:1}" = '-' ]; then +# or there are no args +if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then set -- cassandra -f "$@" fi diff --git a/3.0/Dockerfile b/3.0/Dockerfile index 56d67d4..0a6c7fa 100644 --- a/3.0/Dockerfile +++ b/3.0/Dockerfile @@ -132,8 +132,9 @@ RUN set -ex; \ # https://issues.apache.org/jira/browse/CASSANDRA-11661 sed -ri 's/^(JVM_PATCH_VERSION)=.*/\1=25/' "$CASSANDRA_CONFIG/cassandra-env.sh" -COPY docker-entrypoint.sh /docker-entrypoint.sh -ENTRYPOINT ["/docker-entrypoint.sh"] +COPY docker-entrypoint.sh /usr/local/bin/ +RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] RUN mkdir -p /var/lib/cassandra "$CASSANDRA_CONFIG" \ && chown -R cassandra:cassandra /var/lib/cassandra "$CASSANDRA_CONFIG" \ diff --git a/3.0/docker-entrypoint.sh b/3.0/docker-entrypoint.sh index 16d183a..151adad 100755 --- a/3.0/docker-entrypoint.sh +++ b/3.0/docker-entrypoint.sh @@ -2,7 +2,8 @@ set -e # first arg is `-f` or `--some-option` -if [ "${1:0:1}" = '-' ]; then +# or there are no args +if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then set -- cassandra -f "$@" fi diff --git a/3.11/Dockerfile b/3.11/Dockerfile index 02c1d15..7ed873e 100644 --- a/3.11/Dockerfile +++ b/3.11/Dockerfile @@ -132,8 +132,9 @@ RUN set -ex; \ # https://issues.apache.org/jira/browse/CASSANDRA-11661 sed -ri 's/^(JVM_PATCH_VERSION)=.*/\1=25/' "$CASSANDRA_CONFIG/cassandra-env.sh" -COPY docker-entrypoint.sh /docker-entrypoint.sh -ENTRYPOINT ["/docker-entrypoint.sh"] +COPY docker-entrypoint.sh /usr/local/bin/ +RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] RUN mkdir -p /var/lib/cassandra "$CASSANDRA_CONFIG" \ && chown -R cassandra:cassandra /var/lib/cassandra "$CASSANDRA_CONFIG" \ diff --git a/3.11/docker-entrypoint.sh b/3.11/docker-entrypoint.sh index 16d183a..151adad 100755 --- a/3.11/docker-entrypoint.sh +++ b/3.11/docker-entrypoint.sh @@ -2,7 +2,8 @@ set -e # first arg is `-f` or `--some-option` -if [ "${1:0:1}" = '-' ]; then +# or there are no args +if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then set -- cassandra -f "$@" fi diff --git a/Dockerfile.template b/Dockerfile.template index 96052d6..8e88506 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -132,8 +132,9 @@ RUN set -ex; \ # https://issues.apache.org/jira/browse/CASSANDRA-11661 sed -ri 's/^(JVM_PATCH_VERSION)=.*/\1=25/' "$CASSANDRA_CONFIG/cassandra-env.sh" -COPY docker-entrypoint.sh /docker-entrypoint.sh -ENTRYPOINT ["/docker-entrypoint.sh"] +COPY docker-entrypoint.sh /usr/local/bin/ +RUN ln -s usr/local/bin/docker-entrypoint.sh /docker-entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] RUN mkdir -p /var/lib/cassandra "$CASSANDRA_CONFIG" \ && chown -R cassandra:cassandra /var/lib/cassandra "$CASSANDRA_CONFIG" \ diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 16d183a..151adad 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -2,7 +2,8 @@ set -e # first arg is `-f` or `--some-option` -if [ "${1:0:1}" = '-' ]; then +# or there are no args +if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then set -- cassandra -f "$@" fi diff --git a/update.sh b/update.sh index 3032fd9..254ded4 100755 --- a/update.sh +++ b/update.sh @@ -1,5 +1,5 @@ -#!/bin/bash -set -eo pipefail +#!/usr/bin/env bash +set -Eeuo pipefail cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" @@ -13,14 +13,27 @@ travisEnv= for version in "${versions[@]}"; do dist="${version//./}" packagesUrl="http://www.apache.org/dist/cassandra/debian/dists/${dist}x/main/binary-amd64/Packages.gz" - fullVersion="$(curl -fsSL "$packagesUrl" | gunzip | awk -F ': ' '$1 == "Package" { pkg = $2 } pkg == "cassandra" && $1 == "Version" { print $2 }')" - - ( - set -x - cp docker-entrypoint.sh "$version/" - sed 's/%%CASSANDRA_DIST%%/'$dist'/g; s/%%CASSANDRA_VERSION%%/'$fullVersion'/g' Dockerfile.template > "$version/Dockerfile" - ) - + fullVersion="$( + curl -fsSL "$packagesUrl" \ + | gunzip \ + | awk -F ': ' ' + $1 == "Package" { pkg = $2 } + pkg == "cassandra" && $1 == "Version" { print $2 } + ' + )" + + echo "$version: $fullVersion" + + cp -a docker-entrypoint.sh "$version/" + sed 's/%%CASSANDRA_DIST%%/'$dist'/g; s/%%CASSANDRA_VERSION%%/'$fullVersion'/g' Dockerfile.template > "$version/Dockerfile" + + # remove the "/docker-entrypoint.sh" backwards-compatibility symlink in Cassandra 3.12+ + case "$version" in + 2.*|3.0|3.11) ;; + *) sed -i '/^RUN .* \/docker-entrypoint.sh # backwards compat$/d' "$version/Dockerfile" ;; + esac + # TODO once Cassandra 2.x and 3.x are deprecated, we should remove this from the template itself (and remove this code too) + travisEnv='\n - VERSION='"$version ARCH=i386$travisEnv" travisEnv='\n - VERSION='"$version$travisEnv" done