From d0c251330aa09c4b2af286e468fdfb0db104cd58 Mon Sep 17 00:00:00 2001 From: pifou25 Date: Tue, 17 Dec 2024 22:39:19 +0100 Subject: [PATCH 1/2] improve Dockerfile build sequence --- .dockerignore | 3 +++ Dockerfile | 22 +++++++++++----------- install/OS_specific/Docker/init.sh | 13 +++++++++---- install/install.sh | 6 +++--- 4 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..f4cab784eb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.git +/vendor +/docs \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index d0bcff2b03..1cc184d8b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,18 +44,18 @@ RUN apt -o Dpkg::Options::="--force-confdef" -y install software-properties-comm php libapache2-mod-php php-json php-mysql php-curl php-gd php-imap php-xml php-opcache php-soap php-xmlrpc \ php-common php-dev php-zip php-ssh2 php-mbstring php-ldap php-yaml php-snmp && apt -y remove brltty -COPY install/install.sh /tmp/ -RUN sh /tmp/install.sh -s 1 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 2 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 3 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 4 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 5 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +COPY --chown=root:root --chmod=550 install/install.sh /root/ +RUN sh /root/install.sh -s 1 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 2 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 3 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 4 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 5 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker COPY . ${WEBSERVER_HOME} -RUN sh /tmp/install.sh -s 7 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 8 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 9 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 10 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker -RUN sh /tmp/install.sh -s 11 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 7 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 8 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 9 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 10 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker +RUN sh /root/install.sh -s 11 -v ${VERSION} -w ${WEBSERVER_HOME} -d ${DATABASE} -i docker RUN apt-get clean && rm -rf /var/lib/apt/lists/* RUN echo >${WEBSERVER_HOME}/initialisation diff --git a/install/OS_specific/Docker/init.sh b/install/OS_specific/Docker/init.sh index 1bb9c50f77..8bfe14f32b 100644 --- a/install/OS_specific/Docker/init.sh +++ b/install/OS_specific/Docker/init.sh @@ -81,10 +81,15 @@ if [ -f ${WEBSERVER_HOME}/core/config/common.config.php ]; then else echo 'Start jeedom installation' JEEDOM_INSTALL=0 - rm -rf /root/install.sh - wget https://raw.githubusercontent.com/jeedom/core/${VERSION}/install/install.sh -O /root/install.sh - chmod +x /root/install.sh - /root/install.sh -s 6 -v ${VERSION} -w ${WEBSERVER_HOME} + + # do not re-install jeedom + if [ ! -f ${WEBSERVER_HOME}/core/config/common.config.sample.php ]; then + echo 'download again Jeedom' + /root/install.sh -s 6 -v ${VERSION} -w ${WEBSERVER_HOME} + # jeedom installation : install composer + /root/install.sh -s 10 -v ${VERSION} -w ${WEBSERVER_HOME} -i docker + fi + if [ $(which mysqld | wc -l) -ne 0 ]; then chown -R mysql:mysql /var/lib/mysql mysql_install_db --user=mysql --basedir=/usr/ --ldata=/var/lib/mysql/ diff --git a/install/install.sh b/install/install.sh index bb55dafea1..f6db7fa612 100644 --- a/install/install.sh +++ b/install/install.sh @@ -331,9 +331,6 @@ step_10_jeedom_installation() { export COMPOSER_ALLOW_SUPERUSER=1 cd ${WEBSERVER_HOME} composer install --no-ansi --no-dev --no-interaction --no-plugins --no-progress --no-scripts --optimize-autoloader - mkdir -p /tmp/jeedom - chmod 777 -R /tmp/jeedom - chown www-data:www-data -R /tmp/jeedom if [ "${INSTALLATION_TYPE}" != "docker" ];then php ${WEBSERVER_HOME}/install/install.php mode=force @@ -349,6 +346,9 @@ step_10_jeedom_installation() { step_11_jeedom_post() { echo "---------------------------------------------------------------------" echo "${YELLOW}Starting step 11 - Jeedom post-install${NORMAL}" + mkdir -p /tmp/jeedom + chmod 777 -R /tmp/jeedom + chown www-data:www-data -R /tmp/jeedom if [ $(crontab -l | grep jeedom | wc -l) -ne 0 ];then (echo crontab -l | grep -v "jeedom") | crontab - From d8ae0c0a754ef62967025a5a0a83a86fa5ddccd8 Mon Sep 17 00:00:00 2001 From: Pifou25 Date: Tue, 12 May 2026 22:43:29 +0200 Subject: [PATCH 2/2] Apply suggestion from @kwizer15 Co-Authored-By: kwizer15 --- install/OS_specific/Docker/init.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/install/OS_specific/Docker/init.sh b/install/OS_specific/Docker/init.sh index 8bfe14f32b..46fb1600b7 100644 --- a/install/OS_specific/Docker/init.sh +++ b/install/OS_specific/Docker/init.sh @@ -83,12 +83,13 @@ else JEEDOM_INSTALL=0 # do not re-install jeedom - if [ ! -f ${WEBSERVER_HOME}/core/config/common.config.sample.php ]; then + if [ ! -f ${WEBSERVER_HOME}/core/php/core.inc.php ]; then echo 'download again Jeedom' - /root/install.sh -s 6 -v ${VERSION} -w ${WEBSERVER_HOME} - # jeedom installation : install composer - /root/install.sh -s 10 -v ${VERSION} -w ${WEBSERVER_HOME} -i docker - fi + if ! /root/install.sh -s 6 -v ${VERSION} -w ${WEBSERVER_HOME}; then + echo "ERROR: step 6 failed, aborting" + exit 1 + fi + fi if [ $(which mysqld | wc -l) -ne 0 ]; then chown -R mysql:mysql /var/lib/mysql @@ -111,6 +112,15 @@ else fi fi +# check that vendor directory exists +if [ ! -d ${WEBSERVER_HOME}/vendor ]; then + # jeedom installation : install composer + if ! /root/install.sh -s 10 -v ${VERSION} -w ${WEBSERVER_HOME} -i docker; then + echo "ERROR: step 10 failed, aborting" + exit 1 + fi +fi + setTimeZone #setup apache port apache_setup