aboutsummaryrefslogtreecommitdiff
path: root/docker/base
diff options
context:
space:
mode:
authorRoman Krček <roman.krcek@tietoevry.com>2024-08-05 16:57:06 +0200
committerRoman Krček <roman.krcek@tietoevry.com>2024-09-04 06:37:09 +0000
commit8ae55dd0b8e53e2afcc337204c469ca863823f18 (patch)
tree39a6319ec85ca55308b5c142c71612401047703f /docker/base
parentc63961fdbe4b00707dfc744c57b5b7b0a3257a64 (diff)
downloadkolla-8ae55dd0b8e53e2afcc337204c469ca863823f18.tar.gz
kolla-8ae55dd0b8e53e2afcc337204c469ca863823f18.zip
Refactor dev mode
Provides mechanism for future work to fix bug where when package file manifest changes, the changes were not reflected in to devmode-enabled container. It changes the strategy of installing projects in dev mode in containers. Instead of bind mounting the project's git repository to the venv of the container, the repository is bind mounted to /dev-mode/<project_name> from which the it is installed using pip on every startup of the container using kolla_install_projects script. Related-bug: #1814515 Change-Id: Ia1bdff87cba73587a03124ab78a56b21c6176373 Signed-off-by: Roman Krček <roman.krcek@tietoevry.com>
Diffstat (limited to 'docker/base')
-rw-r--r--docker/base/Dockerfile.j26
-rw-r--r--docker/base/install_projects.sh12
-rw-r--r--docker/base/start.sh3
3 files changed, 20 insertions, 1 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index fe91ca6a6..d220eba2c 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -358,6 +358,7 @@ RUN sed -ri '/-session(\s+)optional(\s+)pam_systemd.so/d' /etc/pam.d/system-auth
COPY set_configs.py /usr/local/bin/kolla_set_configs
COPY start.sh /usr/local/bin/kolla_start
COPY copy_cacerts.sh /usr/local/bin/kolla_copy_cacerts
+COPY install_projects.sh /usr/local/bin/kolla_install_projects
COPY httpd_setup.sh /usr/local/bin/kolla_httpd_setup
COPY sudoers /etc/sudoers
@@ -375,7 +376,10 @@ RUN chmod 755 /usr/local/bin/healthcheck_*
{% endif %}
RUN touch /usr/local/bin/kolla_extend_start \
- && chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_set_configs /usr/local/bin/kolla_copy_cacerts \
+ && chmod 755 /usr/local/bin/kolla_start \
+ /usr/local/bin/kolla_set_configs \
+ /usr/local/bin/kolla_copy_cacerts \
+ /usr/local/bin/kolla_install_projects \
&& chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_httpd_setup \
&& chmod 440 /etc/sudoers \
&& mkdir -p /var/log/kolla \
diff --git a/docker/base/install_projects.sh b/docker/base/install_projects.sh
new file mode 100644
index 000000000..a9a7948d0
--- /dev/null
+++ b/docker/base/install_projects.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# This script finds all projects in /dev-mode folder and
+# installs them using pip
+# The projects are mounted there when dev mode is enabled for them
+# in kolla-ansible
+
+if [ -d "/dev-mode" ]; then
+ for project in /dev-mode/*; do
+ pip install -U "$project"
+ done
+fi
diff --git a/docker/base/start.sh b/docker/base/start.sh
index 79d7f7c74..2b77b4ea2 100644
--- a/docker/base/start.sh
+++ b/docker/base/start.sh
@@ -15,6 +15,9 @@ ARGS=""
# Install/remove custom CA certificates
sudo kolla_copy_cacerts
+# Install projects that are in /dev-mode
+kolla_install_projects
+
if [[ ! "${!KOLLA_SKIP_EXTEND_START[@]}" ]]; then
# Run additional commands if present
. kolla_extend_start