#!/usr/bin/env bash QUAYENTRY=${QUAYENTRY:=$1} QUAYENTRY=${QUAYENTRY:=registry} if ! whoami &> /dev/null; then if [ -w /etc/passwd ]; then echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:${HOME}:/sbin/nologin" >> /etc/passwd fi fi display_usage() { echo "Usage: ${0} " echo echo "If the first argument isn't one of the above modes," echo "the arguments will be exec'd directly, i.e.:" echo echo " ${0} uptime" } if [[ "${QUAYENTRY}" = "help" ]] then display_usage exit 0 fi cat << "EOF" __ __ / \ / \ ______ _ _ __ __ __ / /\ / /\ \ / __ \ | | | | / \ \ \ / / / / / / \ \ | | | | | | | | / /\ \ \ / \ \ \ \ / / | |__| | | |__| | / ____ \ | | \ \/ \ \/ / \_ ___/ \____/ /_/ \_\ |_| \__/ \__/ \ \__ \___\ by Red Hat Build, Store, and Distribute your Containers EOF # Custom environment variables for use in conf/supervisord.conf # The gunicorn-registry process DB_CONNECTION_POOLING must default to true export DB_CONNECTION_POOLING_REGISTRY=${DB_CONNECTION_POOLING:-"true"} case "$QUAYENTRY" in "shell") echo "Entering shell mode" exec /usr/bin/scl enable python27 rh-nginx112 /bin/bash ;; "config") echo "Entering config mode, only copying config-app entrypoints" if [ -z "$2" ] then if [ -z "${CONFIG_APP_PASSWORD}" ] then echo "Missing password for configuration tool" exit else openssl passwd -apr1 "${CONFIG_APP_PASSWORD}" >> $QUAYDIR/config_app/conf/htpasswd fi else openssl passwd -apr1 "$2" >> $QUAYDIR/config_app/conf/htpasswd fi /usr/bin/scl enable python27 rh-nginx112 "${QUAYPATH}/config_app/init/certs_create.sh" /usr/bin/scl enable python27 rh-nginx112 "supervisord -c ${QUAYPATH}/config_app/conf/supervisord.conf 2>&1" ;; "migrate") echo "Entering migration mode to version: ${2}" exec /usr/bin/scl enable python27 rh-nginx112 "PYTHONPATH=${QUAYPATH} ENCRYPTED_ROBOT_TOKEN_MIGRATION_PHASE=remove-old-fields alembic upgrade ${2}" ;; "repomirror") echo "Entering repository mirroring mode" if [ -z "${QUAY_SERVICES}" ] then export QUAY_SERVICES=repomirrorworker,prometheus-aggregator else export QUAY_SERVICES=${QUAY_SERVICES},repomirrorworker,prometheus-aggregator fi ;& "registry") if [ -z "${QUAY_SERVICES}" ] then echo "Running all default registry services" else echo "Running services ${QUAY_SERVICES}" fi for f in $(ls ${QUAYCONF}/init/*.sh); do echo "Running init script '$f'" /usr/bin/scl enable python27 rh-nginx112 "$f" || exit -1; done /usr/bin/scl enable python27 rh-nginx112 "supervisord -c ${QUAYCONF}/supervisord.conf 2>&1" ;; *) echo "Running '$QUAYENTRY'" /usr/bin/scl enable python27 rh-nginx112 "$QUAYENTRY" || exit -1; ;; esac