diff --git a/orchestra/bin/orchestra-admin b/orchestra/bin/orchestra-admin index 82dba1b9..6d9cef5f 100755 --- a/orchestra/bin/orchestra-admin +++ b/orchestra/bin/orchestra-admin @@ -21,22 +21,22 @@ function help () { function print_help () { cat <<- EOF - + ${bold}NAME${normal} ${bold}orchestra-admin${normal} - Orchetsra administration script - + ${bold}OPTIONS${normal} ${bold}install_requirements${normal} Installs Orchestra requirements using apt-get and pip - + ${bold}startproject${normal} Creates a new Django-orchestra instance - + ${bold}help${normal} Displays this help text or related help page as argument for example: ${bold}orchestra-admin help startproject${normal} - + EOF } @@ -73,17 +73,17 @@ export -f get_orchestra_dir function print_install_requirements_help () { cat <<- EOF - + ${bold}NAME${normal} ${bold}orchetsra-admin install_requirements${normal} - Installs all Orchestra requirements using apt-get and pip - + ${bold}OPTIONS${normal} ${bold}-t, --testing${normal} Install Orchestra normal requirements plus those needed for running functional tests - + ${bold}-h, --help${normal} Displays this help text - + EOF } @@ -92,7 +92,7 @@ function install_requirements () { opts=$(getopt -o h,t -l help,testing -- "$@") || exit 1 set -- $opts testing=false - + while [ $# -gt 0 ]; do case $1 in -h|--help) print_deploy_help; exit 0 ;; @@ -105,17 +105,17 @@ function install_requirements () { done unset OPTIND unset opt - + check_root || true ORCHESTRA_PATH=$(get_orchestra_dir) || true - + # Make sure locales are in place before installing postgres if [[ $({ perl --help > /dev/null; } 2>&1|grep 'locale failed') ]]; then run sed -i "s/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/" /etc/locale.gen run locale-gen update-locale LANG=en_US.UTF-8 fi - + # lxml: libxml2-dev, libxslt1-dev, zlib1g-dev APT="bind9utils \ ca-certificates \ @@ -136,10 +136,10 @@ function install_requirements () { iceweasel \ dnsutils" fi - + run apt-get update run apt-get install -y $APT - + # Install ca certificates before executing pip install if [[ ! -e /usr/local/share/ca-certificates/cacert.org ]]; then mkdir -p /usr/local/share/ca-certificates/cacert.org @@ -148,9 +148,9 @@ function install_requirements () { http://www.cacert.org/certs/class3.crt update-ca-certificates fi - + # cracklib and lxml are excluded on the requirements.txt because they need unconvinient system dependencies - PIP="$(wget http://git.io/orchestra-requirements.txt -O - | tr '\n' ' ') \ + PIP="$(wget https://raw.githubusercontent.com/ribaguifi/django-orchestra/dev/github-actions/requirements.txt -O - | tr '\n' ' ') \ cracklib \ lxml==3.3.5" if $testing; then @@ -166,9 +166,9 @@ function install_requirements () { pyinotify \ PyMySQL" fi - + run pip3 install $PIP - + # Install a more recent version of wkhtmltopdf (0.12.2) (PDF page number support) wkhtmltox_version=$(dpkg --list | grep wkhtmltox | awk {'print $3'}) minor=$(echo -e "$wkhtmltox_version\n0.12.2.1" | sort -V | head -n 1) @@ -183,30 +183,30 @@ export -f install_requirements print_startproject_help () { cat <<- EOF - + ${bold}NAME${normal} ${bold}orchestra-admin startproject${normal} - Create a new Django-Orchestra instance - + ${bold}SYNOPSIS${normal} Options: [ -h ] - + ${bold}OPTIONS${normal} ${bold}-h, --help${normal} This help message - + ${bold}EXAMPLES${normal} orchestra-admin startproject controlpanel - + EOF } function startproject () { local PROJECT_NAME="$2"; shift - + opts=$(getopt -o h -l help -- "$@") || exit 1 set -- $opts - + set -- $opts while [ $# -gt 0 ]; do case $1 in @@ -217,10 +217,10 @@ function startproject () { esac shift done - + unset OPTIND unset opt - + [ $(whoami) == 'root' ] && { echo -e "\nYou don't want to run this as root\n" >&2; exit 1; } ORCHESTRA_PATH=$(get_orchestra_dir) || { echo "Error getting orchestra dir"; exit 1; } if [[ ! -e $PROJECT_NAME/manage.py ]]; then diff --git a/requirements.txt b/requirements.txt index c99b32fe..24180dd0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,19 +1,19 @@ -Django==1.10.5 +Django==1.11.6 django-fluent-dashboard==0.6.1 django-admin-tools==0.8.0 django-extensions==1.7.4 -django-celery==3.3.1 +django-celery==3.1.17 celery==3.1.23 kombu==3.0.35 billiard==3.3.0.23 Markdown==2.4 -djangorestframework==3.4.7 +djangorestframework==3.9.4 ecdsa==0.11 Pygments==1.6 -django-filter==0.15.2 +django-filter==1.0.2 jsonfield==0.9.22 -python-dateutil==2.8.1 -https://github.com/glic3rinu/passlib/archive/master.zip +python-dateutil==2.2 +passlib==1.7.0 django-iban==0.3.0 requests phonenumbers diff --git a/scripts/containers/Dockerfile b/scripts/containers/Dockerfile index d06a0af1..7769f13f 100644 --- a/scripts/containers/Dockerfile +++ b/scripts/containers/Dockerfile @@ -1,138 +1,8 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM buildpack-deps:buster - -# ensure local python is preferred over distribution python -ENV PATH /usr/local/bin:$PATH - -# http://bugs.python.org/issue19846 -# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. -ENV LANG C.UTF-8 - -# extra dependencies (over what buildpack-deps already includes) -RUN apt-get update && apt-get install -y --no-install-recommends \ - libbluetooth-dev \ - tk-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D -ENV PYTHON_VERSION 3.6.12 - -RUN set -ex \ - \ - && wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ - && wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ - && export GNUPGHOME="$(mktemp -d)" \ - && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ - && gpg --batch --verify python.tar.xz.asc python.tar.xz \ - && { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \ - && rm -rf "$GNUPGHOME" python.tar.xz.asc \ - && mkdir -p /usr/src/python \ - && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ - && rm python.tar.xz \ - \ - && cd /usr/src/python \ - && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ - && ./configure \ - --build="$gnuArch" \ - --enable-loadable-sqlite-extensions \ - --enable-optimizations \ - --enable-option-checking=fatal \ - --enable-shared \ - --with-system-expat \ - --with-system-ffi \ - --without-ensurepip \ - && make -j "$(nproc)" \ -# setting PROFILE_TASK makes "--enable-optimizations" reasonable: https://bugs.python.org/issue36044 / https://github.com/docker-library/python/issues/160#issuecomment-509426916 - PROFILE_TASK='-m test.regrtest --pgo \ - test_array \ - test_base64 \ - test_binascii \ - test_binhex \ - test_binop \ - test_bytes \ - test_c_locale_coercion \ - test_class \ - test_cmath \ - test_codecs \ - test_compile \ - test_complex \ - test_csv \ - test_decimal \ - test_dict \ - test_float \ - test_fstring \ - test_hashlib \ - test_io \ - test_iter \ - test_json \ - test_long \ - test_math \ - test_memoryview \ - test_pickle \ - test_re \ - test_set \ - test_slice \ - test_struct \ - test_threading \ - test_time \ - test_traceback \ - test_unicode \ - ' \ - && make install \ - && rm -rf /usr/src/python \ - \ - && find /usr/local -depth \ - \( \ - \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ - -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \ - -o \( -type f -a -name 'wininst-*.exe' \) \ - \) -exec rm -rf '{}' + \ - \ - && ldconfig \ - \ - && python3 --version - -# make some useful symlinks that are expected to exist -RUN cd /usr/local/bin \ - && ln -s idle3 idle \ - && ln -s pydoc3 pydoc \ - && ln -s python3 python \ - && ln -s python3-config python-config - -# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" -ENV PYTHON_PIP_VERSION 21.0 -# https://github.com/pypa/get-pip -ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/8cc88aca7d9775fce279e8b84ef163cf1d3e8a2e/get-pip.py -ENV PYTHON_GET_PIP_SHA256 ffb67da2e976f48dd29714fc64812d1ac419eb7d48079737166dd95640d1debd - -RUN set -ex; \ - \ - wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \ - echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \ - \ - python get-pip.py \ - --disable-pip-version-check \ - --no-cache-dir \ - "pip==$PYTHON_PIP_VERSION" \ - ; \ - pip --version; \ - \ - find /usr/local -depth \ - \( \ - \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ - -o \ - \( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ - \) -exec rm -rf '{}' +; \ - rm -f get-pip.py +FROM debian:latest RUN apt-get -y update && apt-get install -y curl sudo -RUN export TERM=xterm; curl -L https://raw.githubusercontent.com/ribaguifi/django-orchestra/master/orchestra/bin/orchestra-admin | bash -s install_requirements +RUN export TERM=xterm; curl -L https://raw.githubusercontent.com/ribaguifi/django-orchestra/dev/github-actions/orchestra/bin/orchestra-admin | bash -s install_requirements RUN apt-get clean @@ -140,5 +10,3 @@ RUN useradd orchestra --shell /bin/bash && \ { echo "orchestra:orchestra" | chpasswd; } && \ mkhomedir_helper orchestra && \ adduser orchestra sudo - -CMD ["python3"]