From c153ba71a93918eee6b3df70d0e9b48992efc061 Mon Sep 17 00:00:00 2001 From: Muhammad Faraz Maqsood Date: Thu, 14 Mar 2024 13:12:07 +0500 Subject: [PATCH 1/4] enhancement: upgrade python version to 3 .12.2 --- .../discovery/build/discovery/Dockerfile | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tutordiscovery/templates/discovery/build/discovery/Dockerfile b/tutordiscovery/templates/discovery/build/discovery/Dockerfile index dbc66e8..1f0e238 100644 --- a/tutordiscovery/templates/discovery/build/discovery/Dockerfile +++ b/tutordiscovery/templates/discovery/build/discovery/Dockerfile @@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ apt update && \ - apt install -y curl git-core gettext language-pack-en python3 python3-dev python3-pip python3-venv \ + apt install -y curl git-core gettext language-pack-en \ build-essential libcairo2 libffi-dev libmysqlclient-dev libxml2-dev libxslt-dev libjpeg-dev libssl-dev \ pkg-config ENV LC_ALL en_US.UTF-8 @@ -27,15 +27,26 @@ WORKDIR /openedx/discovery RUN echo "{}" > /openedx/config.yml ENV DISCOVERY_CFG /openedx/config.yml -# Install python venv -RUN python3 -m venv ../venv/ +# Install pyenv +# https://www.python.org/downloads/ +# https://github.com/pyenv/pyenv/releases +ARG PYTHON_VERSION=3.12.2 +ENV PYENV_ROOT /opt/pyenv +USER root +RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.3.36 --depth 1 +# Install Python +RUN $PYENV_ROOT/bin/pyenv install $PYTHON_VERSION +USER app + +# Create virtualenv +RUN $PYENV_ROOT/versions/$PYTHON_VERSION/bin/python -m venv /openedx/venv ENV PATH "/openedx/venv/bin:$PATH" RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install \ # https://pypi.org/project/setuptools/ # https://pypi.org/project/pip/ # https://pypi.org/project/wheel/ - setuptools==68.2.2 pip==23.2.1. wheel==0.41.2 + setuptools==69.1.1 pip==24.0 wheel==0.43.0 # Install a recent version of nodejs RUN pip install nodeenv==1.8.0 @@ -61,7 +72,7 @@ RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install \ # Use redis as a django cache https://pypi.org/project/django-redis/ django-redis==5.4.0 \ # uwsgi server https://pypi.org/project/uWSGI/ - uwsgi==2.0.22 + uwsgi==2.0.24 {% if DISCOVERY_ATLAS_PULL %} # Pull translations. Support the OEP-58 proposal behind a feature flag until it's fully implemented. From b3fd3ccaccacbac6b6bc18b4f6deddd52a9fc5ea Mon Sep 17 00:00:00 2001 From: Muhammad Faraz Maqsood Date: Thu, 14 Mar 2024 13:13:16 +0500 Subject: [PATCH 2/4] add changelog entry --- .../20240314_131222_faraz.maqsood_python_upgrade_to_v3_12_2.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/20240314_131222_faraz.maqsood_python_upgrade_to_v3_12_2.md diff --git a/changelog.d/20240314_131222_faraz.maqsood_python_upgrade_to_v3_12_2.md b/changelog.d/20240314_131222_faraz.maqsood_python_upgrade_to_v3_12_2.md new file mode 100644 index 0000000..ac6d392 --- /dev/null +++ b/changelog.d/20240314_131222_faraz.maqsood_python_upgrade_to_v3_12_2.md @@ -0,0 +1 @@ +- 💥[Feature] Upgrade Python version to 3.12.2. (by @Faraz32123) \ No newline at end of file From 6ceb4cbf2f65c1e4499b928434ce000fe6657e14 Mon Sep 17 00:00:00 2001 From: Muhammad Faraz Maqsood Date: Mon, 18 Mar 2024 12:09:06 +0500 Subject: [PATCH 3/4] fix: fix compile messages error ModuleNotFoundError: No module named '_sqlite3' fixed above error on line >>> RUN python manage.py compilemessages --- tutordiscovery/templates/discovery/build/discovery/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutordiscovery/templates/discovery/build/discovery/Dockerfile b/tutordiscovery/templates/discovery/build/discovery/Dockerfile index 1f0e238..a5663b8 100644 --- a/tutordiscovery/templates/discovery/build/discovery/Dockerfile +++ b/tutordiscovery/templates/discovery/build/discovery/Dockerfile @@ -8,7 +8,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt update && \ apt install -y curl git-core gettext language-pack-en \ build-essential libcairo2 libffi-dev libmysqlclient-dev libxml2-dev libxslt-dev libjpeg-dev libssl-dev \ - pkg-config + pkg-config libsqlite3-dev ENV LC_ALL en_US.UTF-8 ARG APP_USER_ID=1000 From bcf199641d50072e5f9212e7e772d2a95678002c Mon Sep 17 00:00:00 2001 From: Muhammad Faraz Maqsood Date: Mon, 8 Apr 2024 13:20:10 +0500 Subject: [PATCH 4/4] docs: add a comment explaining the need of root user => [minimal 7/19] RUN echo "{}" > /openedx/config.yml 0.2s => ERROR [minimal 8/19] RUN git clone https://github.com/pyenv/pyenv /opt/pyenv --branch v2.3.36 --depth 1 0.4s ------ > importing cache manifest from docker.io/overhangio/openedx-discovery:17.0.0-nightly-cache: ------ ------ > [minimal 8/19] RUN git clone https://github.com/pyenv/pyenv /opt/pyenv --branch v2.3.36 --depth 1: 0.341 fatal: could not create work tree dir '/opt/pyenv': Permission denied ------ Dockerfile:36 -------------------- 34 | ENV PYENV_ROOT /opt/pyenv 35 | # USER root 36 | >>> RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.3.36 --depth 1 37 | # Install Python 38 | RUN $PYENV_ROOT/bin/pyenv install $PYTHON_VERSION -------------------- ERROR: failed to solve: process "/bin/sh -c git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.3.36 --depth 1" did not complete successfully: exit code: 128 --- tutordiscovery/templates/discovery/build/discovery/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/tutordiscovery/templates/discovery/build/discovery/Dockerfile b/tutordiscovery/templates/discovery/build/discovery/Dockerfile index a5663b8..edc6186 100644 --- a/tutordiscovery/templates/discovery/build/discovery/Dockerfile +++ b/tutordiscovery/templates/discovery/build/discovery/Dockerfile @@ -32,6 +32,7 @@ ENV DISCOVERY_CFG /openedx/config.yml # https://github.com/pyenv/pyenv/releases ARG PYTHON_VERSION=3.12.2 ENV PYENV_ROOT /opt/pyenv +# root user is required for below 2 steps, as app user gets permission denied. USER root RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.3.36 --depth 1 # Install Python