# HG changeset patch # User Vincent Hatakeyama <vincent.hatakeyama@xcg-consulting.fr> # Date 1698764942 -3600 # Tue Oct 31 16:09:02 2023 +0100 # Node ID 1a1ab90b9b89e1ca42282eafb23d5e5a150455c9 # Parent 773727e69cf44f30c86e2c80fe2dfb052bd17115 docker_build: use cache for dev tools diff --git a/odoo_scripts/docker_build.py b/odoo_scripts/docker_build.py --- a/odoo_scripts/docker_build.py +++ b/odoo_scripts/docker_build.py @@ -12,7 +12,7 @@ from python_on_whales import docker -from .config import ODOO_7, ODOO_8, ODOO_10, ODOO_11, ODOO_13, ODOO_14, ODOO_15, Config +from .config import ODOO_7, ODOO_8, ODOO_10, ODOO_11, ODOO_13, ODOO_14, Config from .docker_build_clean import clean from .docker_build_copy import Configuration as CopyConfiguration from .docker_build_copy import add_build_copy_options, copy, get_build_copy_options @@ -193,7 +193,7 @@ call(["cp", dockerfile, debug_dockerfile]) with open(debug_dockerfile, "a") as myfile: - myfile.write("\n# Developer helpers\n") + myfile.write("\n# Developer helpers\nENV PIP_CACHE_DIR=/var/cache/pip\n") if odoo_type in ( ODOO_7, ODOO_8, @@ -201,37 +201,46 @@ ODOO_11, ODOO_13, ODOO_14, - ODOO_15, ): myfile.write("USER root\nRUN apt-get update -qq\n") myfile.write( - "RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -qq " + "RUN --mount=target=/var/cache/apt,type=cache,sharing=shared " + "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq " ) - if odoo_type in (ODOO_11, ODOO_13, ODOO_14, ODOO_15): + if odoo_type in (ODOO_11, ODOO_13, ODOO_14): myfile.write( "python3-watchdog python3-ipdb python3-pyinotify python3-wheel\n" ) # newer setuptools_scm>6 is not compatible with python 3.5 due # to the use of f-strings myfile.write( - "RUN python3 -m pip install " + "RUN --mount=target=/var/cache/pip,type=cache,sharing=shared " + "python3 -m pip install " "\"setuptools_scm<6;python_version<='3.5'\"\n" ) # Install pdb++ - myfile.write("RUN python3 -m pip install pdbpp\n") + myfile.write( + "RUN --mount=target=/var/cache/pip,type=cache,sharing=shared " + "python3 -m pip install pdbpp\n" + ) myfile.write("USER odoo\n") elif odoo_type in (ODOO_10,): myfile.write("python-ipdb\n") myfile.write( - "RUN pip install watchdog --disable-pip-version-check " + "RUN --mount=target=/var/cache/pip,type=cache,sharing=shared pip " + "install watchdog --disable-pip-version-check " "--system --only-binary wheel" ) elif odoo_type in (ODOO_7, ODOO_8): myfile.write("python-ipdb\n") - myfile.write("RUN pip install pyinotify") + myfile.write( + "RUN --mount=target=/var/cache/pip,type=cache,sharing=shared pip " + "install pyinotify\n" + ) else: myfile.write( - "RUN python3 -m pip install pdbpp watchdog ipdb pyinotify\n" + "RUN --mount=target=/var/cache/pip,type=cache,sharing=shared " + "python3 -m pip install pdbpp watchdog ipdb pyinotify\n" ) dockerfile = debug_dockerfile