From 626fcca9e425cd09b36ccf738d9839e66a9f9fd5 Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Wed, 26 Oct 2022 11:40:41 +0300 Subject: [PATCH 1/9] Add new enviroment file --- .env | 7 +++++++ main.env | 6 ------ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 .env delete mode 100644 main.env diff --git a/.env b/.env new file mode 100644 index 0000000..10d643e --- /dev/null +++ b/.env @@ -0,0 +1,7 @@ +HTTP_HOST="localhost:8080" +DB_HOST="mysql" +DB_DATABASE="docker" +DB_USERNAME="docker" +DB_PASSWORD="Your_DB_user_P@s$w0rd" +CACHE_URL="Redis://?server=redis&port=6379&password=&timeout=3" +MYSQL_ROOT_PASSWORD="Your_MysQl_ROOt_P@s$w0rd" diff --git a/main.env b/main.env deleted file mode 100644 index 85fe2dd..0000000 --- a/main.env +++ /dev/null @@ -1,6 +0,0 @@ -HTTP_HOST=localhost:8080 -DB_HOST=mysql -DB_DATABASE=docker -DB_USERNAME=docker -DB_PASSWORD=docker -CACHE_URL=Redis://?server=redis&port=6379&password=&timeout=3 From 228c303dae941be1e244fd0c0d594f56184e82ff Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Wed, 26 Oct 2022 11:42:41 +0300 Subject: [PATCH 2/9] Changing hardcoded value to variable --- mysql/entrypoint/grant.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql/entrypoint/grant.sh b/mysql/entrypoint/grant.sh index 4edd668..7a84364 100755 --- a/mysql/entrypoint/grant.sh +++ b/mysql/entrypoint/grant.sh @@ -1,2 +1,2 @@ #!/bin/bash -mysql -u root -pdocker -e 'GRANT PROCESS ON *.* TO docker@`%`;' +mysql -u root -p$MYSQL_ROOT_PASSWORD -e 'GRANT PROCESS ON *.* TO docker@`%`;' From 953c924ba6b4d71b0e796b30c11d5fd1449b0faa Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Wed, 26 Oct 2022 11:45:24 +0300 Subject: [PATCH 3/9] Using variables in docker-compose file. Changes in crontab. You may perfom crontab changes in image and delete cron volume --- docker-compose.simple-install.yml | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 1110af0..66f3198 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -9,10 +9,10 @@ services: - ./mysql/conf.d:/etc/mysql/conf.d - ./mysql/entrypoint:/docker-entrypoint-initdb.d environment: - MYSQL_DATABASE: docker - MYSQL_USER: docker - MYSQL_PASSWORD: docker - MYSQL_ROOT_PASSWORD: docker + MYSQL_DATABASE: ${DB_DATABASE} + MYSQL_USER: ${DB_USERNAME} + MYSQL_PASSWORD: ${DB_PASSWORD} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} redis: container_name: redis image: redis:6.0.16-alpine @@ -28,8 +28,14 @@ services: - ./apache/ssl/mycert.crt:/etc/ssl/certs/mycert.crt - ./apache/ssl/mycert.key:/etc/ssl/private/mycert.key - ./apache/vhost-with-ssl.conf:/etc/apache2/sites-available/000-default.conf - env_file: - - main.env + - ./crontab/crontab:/etc/cron.d/eramba-crontab + environment: + DB_HOST: ${DB_HOST} + DB_DATABASE: ${DB_DATABASE} + DB_USERNAME: ${DB_USERNAME} + DB_PASSWORD: ${DB_PASSWORD} + CACHE_URL: ${CACHE_URL} + HTTP_HOST: ${HTTP_HOST} links: - mysql - redis @@ -43,9 +49,14 @@ services: volumes: - data:/var/www/eramba/app/upgrade/data - app:/var/www/eramba - - ./main.env:/var/www/eramba/app/upgrade/vendor/eramba/docker/main.env - env_file: - - main.env + - ./crontab/crontab:/etc/cron.d/eramba-crontab + environment: + DB_HOST: ${DB_HOST} + DB_DATABASE: ${DB_DATABASE} + DB_USERNAME: ${DB_USERNAME} + DB_PASSWORD: ${DB_PASSWORD} + CACHE_URL: ${CACHE_URL} + HTTP_HOST: ${HTTP_HOST} links: - mysql - redis From b7b4e7336db0a9d694e9c5809b681ec3183a9495 Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 26 Oct 2022 12:08:40 +0200 Subject: [PATCH 4/9] Removed the `$` sign from env values Otherwise docker compose would be saying this error message: WARN[0000] The "w0rd" variable is not set. Defaulting to a blank string. --- .env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 10d643e..330adc8 100644 --- a/.env +++ b/.env @@ -2,6 +2,6 @@ HTTP_HOST="localhost:8080" DB_HOST="mysql" DB_DATABASE="docker" DB_USERNAME="docker" -DB_PASSWORD="Your_DB_user_P@s$w0rd" +DB_PASSWORD="Your_DB_user_P@ssw0rd" CACHE_URL="Redis://?server=redis&port=6379&password=&timeout=3" -MYSQL_ROOT_PASSWORD="Your_MysQl_ROOt_P@s$w0rd" +MYSQL_ROOT_PASSWORD="Your_MysQl_ROOt_P@ssw0rd" From 0158128b40221b6c5604e79cab207913c570eb27 Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 26 Oct 2022 12:09:11 +0200 Subject: [PATCH 5/9] Replaced main.env for .env --- crontab/crontab | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crontab/crontab b/crontab/crontab index 5cb0a7f..aa46fe7 100644 --- a/crontab/crontab +++ b/crontab/crontab @@ -1,5 +1,5 @@ -@hourly export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job hourly >> /var/log/cron.log 2>&1 -@daily export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job daily >> /var/log/cron.log 2>&1 -@yearly export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 -*/1 * * * * export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake queue run -v >> /var/log/cron.log 2>&1 +@hourly export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job hourly >> /var/log/cron.log 2>&1 +@daily export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job daily >> /var/log/cron.log 2>&1 +@yearly export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 +*/1 * * * * export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake queue run -v >> /var/log/cron.log 2>&1 # remember to end this file with an empty new line From 1f3bc4e57bce622bb3c9cbbbf3ed8fd46acf5087 Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 26 Oct 2022 12:10:50 +0200 Subject: [PATCH 6/9] Added a CRON container entrypoint That stores container environmental values needed for running eramba to the actual .env file, othewise cron job has problems picking up environmentals that are ran with the container from docker compose --- docker-compose.simple-install.yml | 3 ++- docker-cron-entrypoint.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100755 docker-cron-entrypoint.sh diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 66f3198..745dcc2 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -45,10 +45,11 @@ services: container_name: cron image: ghcr.io/eramba/eramba:latest command: ["cron", "-f"] - entrypoint: ["docker-php-entrypoint"] + entrypoint: ["/docker-cron-entrypoint.sh"] volumes: - data:/var/www/eramba/app/upgrade/data - app:/var/www/eramba + - ./docker-cron-entrypoint.sh:/docker-cron-entrypoint.sh - ./crontab/crontab:/etc/cron.d/eramba-crontab environment: DB_HOST: ${DB_HOST} diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh new file mode 100755 index 0000000..d18d8a7 --- /dev/null +++ b/docker-cron-entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +cd /var/www/eramba/app/upgrade/vendor/eramba/docker || exit + +su -s /bin/bash -c "printenv | grep DB_ > .env" www-data +su -s /bin/bash -c "printenv | grep CACHE_URL >> .env" www-data +su -s /bin/bash -c "printenv | grep HTTP_HOST >> .env" www-data + +su -s /bin/bash -c "crontab -u www-data /etc/cron.d/eramba-crontab" www-data + +exec docker-php-entrypoint "$@" From 0f19ca0c753185f27f2b2ff65e5f8178be63b51b Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Wed, 26 Oct 2022 13:23:27 +0300 Subject: [PATCH 7/9] Removing envs exporting --- crontab/crontab | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crontab/crontab b/crontab/crontab index 5cb0a7f..699eea1 100644 --- a/crontab/crontab +++ b/crontab/crontab @@ -1,5 +1,5 @@ -@hourly export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job hourly >> /var/log/cron.log 2>&1 -@daily export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job daily >> /var/log/cron.log 2>&1 -@yearly export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 -*/1 * * * * export $(cat /var/www/eramba/app/upgrade/vendor/eramba/docker/main.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake queue run -v >> /var/log/cron.log 2>&1 +@hourly /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job hourly >> /var/log/cron.log 2>&1 +@daily /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job daily >> /var/log/cron.log 2>&1 +@yearly /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 +*/1 * * * * /bin/sh /var/www/eramba/app/upgrade/bin/cake queue run -v >> /var/log/cron.log 2>&1 # remember to end this file with an empty new line From 217cb435d1dc479355f58452af7d9c05f6d7e72a Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 31 Oct 2022 12:56:55 +0100 Subject: [PATCH 8/9] Shell syntax correction --- mysql/entrypoint/grant.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql/entrypoint/grant.sh b/mysql/entrypoint/grant.sh index 7a84364..283f6b4 100755 --- a/mysql/entrypoint/grant.sh +++ b/mysql/entrypoint/grant.sh @@ -1,2 +1,2 @@ #!/bin/bash -mysql -u root -p$MYSQL_ROOT_PASSWORD -e 'GRANT PROCESS ON *.* TO docker@`%`;' +mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e 'GRANT PROCESS ON *.* TO docker@`%`;' From b4875d429cb0142644b86cca36a211b3ab150dd8 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 31 Oct 2022 12:57:37 +0100 Subject: [PATCH 9/9] Mysql entrypoint uses configured MYSQL_USER for additional changes instead of hard-defined user string --- mysql/entrypoint/grant.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql/entrypoint/grant.sh b/mysql/entrypoint/grant.sh index 283f6b4..dabde72 100755 --- a/mysql/entrypoint/grant.sh +++ b/mysql/entrypoint/grant.sh @@ -1,2 +1,2 @@ #!/bin/bash -mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e 'GRANT PROCESS ON *.* TO docker@`%`;' +mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e 'GRANT PROCESS ON *.* TO '"$MYSQL_USER"'@`%`;'