You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2023/01/13 23:20:48 UTC
[allura] 01/04: [#8489] allow docker image to build with parameterized python version
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8489
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 480daebd5ec7679ebb84df0c9cbf1ac20d1b9037
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Jan 13 13:29:16 2023 -0500
[#8489] allow docker image to build with parameterized python version
---
Allura/docs/getting_started/installation.rst | 4 ++++
Dockerfile | 13 +++++++++----
scripts/init-docker-dev.sh | 6 +++---
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/Allura/docs/getting_started/installation.rst b/Allura/docs/getting_started/installation.rst
index e0b3df4f5..c680d93f9 100644
--- a/Allura/docs/getting_started/installation.rst
+++ b/Allura/docs/getting_started/installation.rst
@@ -65,6 +65,10 @@ Build/fetch all required images:
docker-compose build
+.. note::
+
+ You can override the python version by adding :code:`--build-arg PY_VERSION=3.8` for example.
+
Python and JS package setup (and first containers started):
.. code-block:: bash
diff --git a/Dockerfile b/Dockerfile
index 2b2a9c0c7..07519cb95 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,8 +17,10 @@
FROM ubuntu:18.04
+ARG PY_VERSION=3.7
+
# Ubunutu 18.04's latest python is 3.6 (and Ubuntu 20.04's is 3.8)
-# In order to get python3.7, we must add the deadsnakes apt repo, and install 3.7 specifically
+# In order to get a different python, we must add the deadsnakes apt repo, and install a specific version
RUN apt-get update \
&& apt-get install software-properties-common -y --no-install-recommends \
&& add-apt-repository ppa:deadsnakes/ppa -y \
@@ -29,9 +31,9 @@ RUN apt-get upgrade -y git
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
git-core \
- python3.7 \
- python3.7-venv \
- python3.7-dev \
+ python$PY_VERSION \
+ python$PY_VERSION-venv \
+ python$PY_VERSION-dev \
gcc \
libmagic1 \
libssl-dev \
@@ -49,6 +51,9 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sudo \
&& rm -rf /var/lib/apt/lists/*
+# save env var, so init-docker-dev.sh can use it
+ENV PYTHON_EXE=python$PY_VERSION
+
# up-to-date version of node & npm
RUN curl --silent --location https://deb.nodesource.com/setup_10.x | sudo bash - && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends nodejs
diff --git a/scripts/init-docker-dev.sh b/scripts/init-docker-dev.sh
index 325d09ff4..39001c1f0 100755
--- a/scripts/init-docker-dev.sh
+++ b/scripts/init-docker-dev.sh
@@ -40,16 +40,16 @@ cp /allura/Allura/allura/public/nf/favicon.ico /allura-data/www-misc/favicon.ico
rm -rf /allura-data/virtualenv
if [ ! -e /allura-data/virtualenv ]; then
echo -e "Creating virtualenv\n"
- python3.7 -m venv /allura-data/virtualenv
+ PYTHON_EXE="${PYTHON_EXE:-python3.7}" # should always be set from Dockerfile, but set default value just in case
+ $PYTHON_EXE -m venv /allura-data/virtualenv
/allura-data/virtualenv/bin/pip install -U pip
/allura-data/virtualenv/bin/pip install -U wheel
curl https://raw.githubusercontent.com/reviewboard/pysvn-installer/master/install.py | /allura-data/virtualenv/bin/python
echo # just a new line
fi
-source /allura-data/virtualenv/bin/activate
echo -e "Installing python packages\n"
-pip install -q -r requirements.txt
+/allura-data/virtualenv/bin/pip install -q -r requirements.txt
/allura/rebuild-all.bash
echo