From 5b60160a2010189d3ab58203c5c83d0185c6471e Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 31 Oct 2022 13:46:06 +0100 Subject: [PATCH 01/13] Replaced SSL+NonSSL vhost with only SSL vhost to keep it simpler and easier to maintain and modify --- apache/{vhost-with-ssl.conf => vhost-ssl.conf} | 12 ------------ docker-compose.simple-install.yml | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) rename apache/{vhost-with-ssl.conf => vhost-ssl.conf} (54%) diff --git a/apache/vhost-with-ssl.conf b/apache/vhost-ssl.conf similarity index 54% rename from apache/vhost-with-ssl.conf rename to apache/vhost-ssl.conf index 68cb245..987d425 100644 --- a/apache/vhost-with-ssl.conf +++ b/apache/vhost-ssl.conf @@ -10,15 +10,3 @@ SSLCertificateFile /etc/ssl/certs/mycert.crt SSLCertificateKeyFile /etc/ssl/private/mycert.key - - - DocumentRoot "/var/www/eramba" - - AllowOverride all - Require all granted - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - Redirect / https://localhost:8443/ - diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 1110af0..2c22ed8 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -27,7 +27,7 @@ services: - app:/var/www/eramba - ./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 + - ./apache/vhost-ssl.conf:/etc/apache2/sites-available/000-default.conf env_file: - main.env links: From cc37cae91a34f0e077a04e085d3ab4ba2a9f287b Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 31 Oct 2022 14:28:48 +0100 Subject: [PATCH 02/13] Removed 8080:80 port mapping --- docker-compose.simple-install.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 76a7c31..0bd5459 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -20,7 +20,6 @@ services: container_name: eramba image: ghcr.io/eramba/eramba:latest ports: - - 8080:80 - 8443:443 volumes: - data:/var/www/eramba/app/upgrade/data From 0315906cec064d3c851ffe2896583875c06e4eb5 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 31 Oct 2022 14:29:02 +0100 Subject: [PATCH 03/13] Changed HTTP_HOST to localhost:8443 --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 330adc8..f7a4ee4 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -HTTP_HOST="localhost:8080" +HTTP_HOST="localhost:8443" DB_HOST="mysql" DB_DATABASE="docker" DB_USERNAME="docker" From ec458c12904f5a2bb0187d2b7582440445d63203 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 31 Oct 2022 14:35:07 +0100 Subject: [PATCH 04/13] Added a `PUBLIC_ADDRESS` env() value which will get compatibility with eramba images soon to prevent HTTP_HOST security header issue --- .env | 1 + docker-cron-entrypoint.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/.env b/.env index f7a4ee4..3f7223c 100644 --- a/.env +++ b/.env @@ -1,4 +1,5 @@ HTTP_HOST="localhost:8443" +PUBLIC_ADDRESS="https://localhost:8443" DB_HOST="mysql" DB_DATABASE="docker" DB_USERNAME="docker" diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh index d18d8a7..6fe14ca 100755 --- a/docker-cron-entrypoint.sh +++ b/docker-cron-entrypoint.sh @@ -4,6 +4,7 @@ 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 PUBLIC_ADDRESS >> .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 From 2273f7afcf3539b56d2676d86eee7f8cc9ceb72f Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 10:42:37 +0100 Subject: [PATCH 05/13] Added `PUBLIC_ADDRESS` env() to containers --- docker-compose.simple-install.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 0bd5459..dac7554 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -35,6 +35,7 @@ services: DB_PASSWORD: ${DB_PASSWORD} CACHE_URL: ${CACHE_URL} HTTP_HOST: ${HTTP_HOST} + PUBLIC_ADDRESS: ${PUBLIC_ADDRESS} links: - mysql - redis @@ -57,6 +58,7 @@ services: DB_PASSWORD: ${DB_PASSWORD} CACHE_URL: ${CACHE_URL} HTTP_HOST: ${HTTP_HOST} + PUBLIC_ADDRESS: ${PUBLIC_ADDRESS} links: - mysql - redis From dc2158e4a185fda6025e910d718733af4420b595 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 10:45:52 +0100 Subject: [PATCH 06/13] Fixed Proxy configuration --- .env | 6 ++++++ docker-compose.simple-install.yml | 12 ++++++++++++ docker-cron-entrypoint.sh | 2 ++ 3 files changed, 20 insertions(+) diff --git a/.env b/.env index 3f7223c..d0ac812 100644 --- a/.env +++ b/.env @@ -6,3 +6,9 @@ DB_USERNAME="docker" DB_PASSWORD="Your_DB_user_P@ssw0rd" CACHE_URL="Redis://?server=redis&port=6379&password=&timeout=3" MYSQL_ROOT_PASSWORD="Your_MysQl_ROOt_P@ssw0rd" +USE_PROXY="0" +PROXY_HOST="" +PROXY_PORT="" +USE_PROXY_AUTH="0" +PROXY_AUTH_USER="" +PROXY_AUTH_PASS="" diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index dac7554..5493642 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -36,6 +36,12 @@ services: CACHE_URL: ${CACHE_URL} HTTP_HOST: ${HTTP_HOST} PUBLIC_ADDRESS: ${PUBLIC_ADDRESS} + USE_PROXY: ${USE_PROXY} + PROXY_HOST: ${PROXY_HOST} + PROXY_PORT: ${PROXY_PORT} + USE_PROXY_AUTH: ${USE_PROXY_AUTH} + PROXY_AUTH_USER: ${PROXY_AUTH_USER} + PROXY_AUTH_PASS: ${PROXY_AUTH_PASS} links: - mysql - redis @@ -59,6 +65,12 @@ services: CACHE_URL: ${CACHE_URL} HTTP_HOST: ${HTTP_HOST} PUBLIC_ADDRESS: ${PUBLIC_ADDRESS} + USE_PROXY: ${USE_PROXY} + PROXY_HOST: ${PROXY_HOST} + PROXY_PORT: ${PROXY_PORT} + USE_PROXY_AUTH: ${USE_PROXY_AUTH} + PROXY_AUTH_USER: ${PROXY_AUTH_USER} + PROXY_AUTH_PASS: ${PROXY_AUTH_PASS} links: - mysql - redis diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh index 6fe14ca..572868a 100755 --- a/docker-cron-entrypoint.sh +++ b/docker-cron-entrypoint.sh @@ -6,6 +6,8 @@ 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 PUBLIC_ADDRESS >> .env" www-data su -s /bin/bash -c "printenv | grep HTTP_HOST >> .env" www-data +su -s /bin/bash -c "printenv | grep USE_PROXY >> .env" www-data +su -s /bin/bash -c "printenv | grep PROXY_ >> .env" www-data su -s /bin/bash -c "crontab -u www-data /etc/cron.d/eramba-crontab" www-data From f16f2e09d629f3f2f03384ce2d76c644a4ae8027 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 13:19:19 +0100 Subject: [PATCH 07/13] Removed dependency on eramba repository --- crontab/crontab | 8 ++++---- docker-cron-entrypoint.sh | 14 ++++++-------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/crontab/crontab b/crontab/crontab index aa46fe7..035059e 100644 --- a/crontab/crontab +++ b/crontab/crontab @@ -1,5 +1,5 @@ -@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 +@hourly export $(cat /tmp/eramba.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job hourly >> /var/log/cron.log 2>&1 +@daily export $(cat /tmp/eramba.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job daily >> /var/log/cron.log 2>&1 +@yearly export $(cat /tmp/eramba.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 +* * * * * export $(cat /tmp/eramba.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 diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh index 572868a..53e68e8 100755 --- a/docker-cron-entrypoint.sh +++ b/docker-cron-entrypoint.sh @@ -1,13 +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 PUBLIC_ADDRESS >> .env" www-data -su -s /bin/bash -c "printenv | grep HTTP_HOST >> .env" www-data -su -s /bin/bash -c "printenv | grep USE_PROXY >> .env" www-data -su -s /bin/bash -c "printenv | grep PROXY_ >> .env" www-data +su -s /bin/bash -c "printenv | grep DB_ > /tmp/eramba.env" www-data +su -s /bin/bash -c "printenv | grep CACHE_URL >> /tmp/eramba.env" www-data +su -s /bin/bash -c "printenv | grep PUBLIC_ADDRESS >> /tmp/eramba.env" www-data +su -s /bin/bash -c "printenv | grep HTTP_HOST >> /tmp/eramba.env" www-data +su -s /bin/bash -c "printenv | grep USE_PROXY >> /tmp/eramba.env" www-data +su -s /bin/bash -c "printenv | grep PROXY_ >> /tmp/eramba.env" www-data su -s /bin/bash -c "crontab -u www-data /etc/cron.d/eramba-crontab" www-data From 4a434709a37efc39a6879116d6720af1c6775f0a Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 13:19:29 +0100 Subject: [PATCH 08/13] Simple install workflow --- .github/workflows/Docker-Simple-Install.yml | 63 +++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/Docker-Simple-Install.yml diff --git a/.github/workflows/Docker-Simple-Install.yml b/.github/workflows/Docker-Simple-Install.yml new file mode 100644 index 0000000..d30a9d0 --- /dev/null +++ b/.github/workflows/Docker-Simple-Install.yml @@ -0,0 +1,63 @@ +name: Docker + +on: + pull_request: + branches: + - '*' + +jobs: + simple_install: + name: Simple Installation [${{ matrix.build-type }}] + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + build-type: +# - enterprise + - community + + steps: + - name: Check out the repo + uses: actions/checkout@v3 +# +# - name: Log in to GitHub Container Registry +# uses: docker/login-action@v2 +# with: +# registry: ghcr.io +# username: ${{ github.actor }} +# password: ${{ secrets.TOKEN_INCREASED_PERMISSIONS }} + + - name: Run Simple Install + run: | + docker compose -f docker-compose.simple-install.yml down 2>&1 + docker system prune --force --volumes --all + + docker compose -f docker-compose.simple-install.yml up -d + + - name: Wait for apache to start + timeout-minutes: 5 + run: while ! `docker exec -w /var/www/eramba/app/upgrade -u www-data eramba curl -v -o /dev/null http://localhost:80`; do printf 'Waiting for Apache...\n'; sleep 2; done; + + - name: HTTP Check + run: | + if curl -w '%{http_code}\n' -o /dev/null --silent --insecure https://localhost:8443/settings/test-public-address | grep 204; then + exit 0 + else + exit 1 + fi + + - name: CMD Check + run: | + if docker exec -w /var/www/eramba/app/upgrade -u www-data eramba bin/cake current_config validate; then + exit 0 + fi + + exit 1 + + - name: System Health Check + run: | + if docker exec -w /var/www/eramba/app/upgrade -u www-data eramba bin/cake system_health check; then + exit 0 + fi + + exit 1 From d2a74a51c5c51bebceffaf3ec0dcdfc7d7885830 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 13:42:27 +0100 Subject: [PATCH 09/13] Simplified github workflows --- .github/workflows/Docker-Simple-Install.yml | 63 -------- .github/workflows/Docker.yml | 167 ++------------------ 2 files changed, 16 insertions(+), 214 deletions(-) delete mode 100644 .github/workflows/Docker-Simple-Install.yml diff --git a/.github/workflows/Docker-Simple-Install.yml b/.github/workflows/Docker-Simple-Install.yml deleted file mode 100644 index d30a9d0..0000000 --- a/.github/workflows/Docker-Simple-Install.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Docker - -on: - pull_request: - branches: - - '*' - -jobs: - simple_install: - name: Simple Installation [${{ matrix.build-type }}] - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - build-type: -# - enterprise - - community - - steps: - - name: Check out the repo - uses: actions/checkout@v3 -# -# - name: Log in to GitHub Container Registry -# uses: docker/login-action@v2 -# with: -# registry: ghcr.io -# username: ${{ github.actor }} -# password: ${{ secrets.TOKEN_INCREASED_PERMISSIONS }} - - - name: Run Simple Install - run: | - docker compose -f docker-compose.simple-install.yml down 2>&1 - docker system prune --force --volumes --all - - docker compose -f docker-compose.simple-install.yml up -d - - - name: Wait for apache to start - timeout-minutes: 5 - run: while ! `docker exec -w /var/www/eramba/app/upgrade -u www-data eramba curl -v -o /dev/null http://localhost:80`; do printf 'Waiting for Apache...\n'; sleep 2; done; - - - name: HTTP Check - run: | - if curl -w '%{http_code}\n' -o /dev/null --silent --insecure https://localhost:8443/settings/test-public-address | grep 204; then - exit 0 - else - exit 1 - fi - - - name: CMD Check - run: | - if docker exec -w /var/www/eramba/app/upgrade -u www-data eramba bin/cake current_config validate; then - exit 0 - fi - - exit 1 - - - name: System Health Check - run: | - if docker exec -w /var/www/eramba/app/upgrade -u www-data eramba bin/cake system_health check; then - exit 0 - fi - - exit 1 diff --git a/.github/workflows/Docker.yml b/.github/workflows/Docker.yml index 2df7451..b6927e2 100644 --- a/.github/workflows/Docker.yml +++ b/.github/workflows/Docker.yml @@ -4,128 +4,35 @@ on: pull_request: branches: - '*' - workflow_dispatch: - inputs: - version: - description: 'Eramba Version (you can put any branch name)' - required: true - default: '3.x' jobs: - build_push: - name: Build and Push Eramba Docker Image [${{ matrix.build-type }}] + simple_install: + name: Simple Installation [${{ matrix.build-type }}] runs-on: ubuntu-22.04 -# - self-hosted -# - Linux -# - ARM64 strategy: fail-fast: false - # max-parallel: 1 matrix: build-type: - - enterprise + # - enterprise - community steps: - - id: inputs - run: | - if ${{ github.event.inputs.version == '' }}; then - echo '::set-output name=version::3.x' - else - echo '::set-output name=version::${{ github.event.inputs.version }}' - fi - - - uses: webfactory/ssh-agent@v0.5.4 - with: - ssh-private-key: | - ${{ secrets.SSH_PRIVATE_KEY }} - # ${{ secrets.SSH_RUNNERS_PRIVATE_KEY }} - - name: Check out the repo uses: actions/checkout@v3 - with: - repository: eramba/eramba - path: eramba - ref: ${{ steps.inputs.outputs.version }} - ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} - - - name: Actions for some reason delete all .gitkeep files with all remaining empty dirs, this reverts it. - working-directory: eramba - run: | - if git status | grep "app/upgrade/data/.gitkeep"; then - git checkout -f - fi - git status; - - - name: Setup build distribution type vars based on the matrix - id: build-type - run: | - if ${{ matrix.build-type == 'enterprise' }}; then - echo '::set-output name=image::ghcr.io/eramba/docker-enterprise' - exit 0 - fi - - if ${{ matrix.build-type == 'community' }}; then - echo '::set-output name=image::ghcr.io/eramba/docker-community' - exit 0 - fi - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - - name: Cache Docker layers - uses: actions/cache@v3 - with: - path: ${{ runner.temp }}/.buildx-cache - key: ${{ runner.os }}-buildx-${{ matrix.build-type }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.TOKEN_INCREASED_PERMISSIONS }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v4 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - images: ${{ steps.build-type.outputs.image }} - - - name: Composer install - working-directory: eramba - run: | - sudo apt install -y composer - composer install --no-interaction --ignore-platform-reqs --prefer-dist - composer require eramba/${{ matrix.build-type }}-pack:^1.0 --no-interaction --ignore-platform-reqs --prefer-dist - - - name: Check out the repo - uses: actions/checkout@v3 - with: - path: docker - - - name: Copy docker source files to app/upgrade/vendor/eramba/docker to test it out - run: | - rm -rf eramba/app/upgrade/vendor/docker - cp -r docker eramba/app/upgrade/vendor/docker - - - name: Run docker compose - working-directory: eramba - run: | - docker container rm -f -v cron eramba mysql redis 2> /dev/null - docker volume rm -f eramba_app eramba_data eramba_db-data 2> /dev/null - docker volume rm -f eramba_v2_app eramba_v2_data eramba_v2_db-data 2> /dev/null - docker volume rm -f eramba-enterprise_app eramba-enterprise_data eramba-enterprise_db-data 2> /dev/null - docker volume rm -f eramba-community_app eramba-community_data eramba-community_db-data 2> /dev/null - docker volume rm -f eramba_v3_app eramba_v3_data eramba_v3_db-data 2> /dev/null - docker volume rm -f docker_app docker_data docker_db-data 2> /dev/null + # + # - name: Log in to GitHub Container Registry + # uses: docker/login-action@v2 + # with: + # registry: ghcr.io + # username: ${{ github.actor }} + # password: ${{ secrets.TOKEN_INCREASED_PERMISSIONS }} + + - name: Run Simple Install + run: | + docker compose -f docker-compose.simple-install.yml down 2>&1 + docker system prune --force --volumes --all - docker compose up -d + docker compose -f docker-compose.simple-install.yml up -d - name: Wait for apache to start timeout-minutes: 5 @@ -154,45 +61,3 @@ jobs: fi exit 1 -# -# - name: Cypress Tests Dependencies -# run: sudo apt-get install -y npm libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb -# -# - name: Prepare cypress environmental -# id: cypress-environmental -# run: | -# if ${{ matrix.build-type == 'enterprise' }}; then -# echo '::set-output name=env-value::on' -# else -# echo '::set-output name=env-value::off' -# fi - -# - name: Cypress Tests -# uses: cypress-io/github-action@v4 -# with: -# working-directory: eramba/app/upgrade -# browser: electron -# config: pageLoadTimeout=100000,baseUrl=http://localhost:8080 -# record: true -# cache-key: type-${{ matrix.build-type }}-on-${{ runner.os }} -# env: -# CYPRESS_enterprise: ${{ steps.cypress-environmental.outputs.env-value }} -# # pass the Dashboard record key as an environment variable -# CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} -# # pass GitHub token to allow accurately detecting a build vs a re-run build -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Docker image - id: docker_build - uses: docker/build-push-action@v3 - with: - context: eramba - github-token: ${{ secrets.GITHUB_TOKEN }} - file: eramba/Dockerfile - builder: ${{ steps.buildx.outputs.name }} - target: eramba - labels: ${{ steps.meta.outputs.labels }} - tags: ${{ steps.meta.outputs.tags }} - push: true - cache-from: type=registry,ref=${{ steps.build-type.outputs.image }}:buildcache - cache-to: type=registry,ref=${{ steps.build-type.outputs.image }}:buildcache,mode=max From 37bfb7448966ec0e62289edb17933fa33f6fa462 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 19:38:49 +0100 Subject: [PATCH 10/13] Moved .env file --- crontab/crontab | 8 ++++---- docker-cron-entrypoint.sh | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crontab/crontab b/crontab/crontab index 035059e..3e03511 100644 --- a/crontab/crontab +++ b/crontab/crontab @@ -1,5 +1,5 @@ -@hourly export $(cat /tmp/eramba.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job hourly >> /var/log/cron.log 2>&1 -@daily export $(cat /tmp/eramba.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job daily >> /var/log/cron.log 2>&1 -@yearly export $(cat /tmp/eramba.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 -* * * * * export $(cat /tmp/eramba.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/.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/.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/.env) && /bin/sh /var/www/eramba/app/upgrade/bin/cake cron job yearly >> /var/log/cron.log 2>&1 +* * * * * export $(cat /var/www/eramba/.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 diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh index 53e68e8..0b6ad9b 100755 --- a/docker-cron-entrypoint.sh +++ b/docker-cron-entrypoint.sh @@ -1,11 +1,11 @@ #!/bin/sh -su -s /bin/bash -c "printenv | grep DB_ > /tmp/eramba.env" www-data -su -s /bin/bash -c "printenv | grep CACHE_URL >> /tmp/eramba.env" www-data -su -s /bin/bash -c "printenv | grep PUBLIC_ADDRESS >> /tmp/eramba.env" www-data -su -s /bin/bash -c "printenv | grep HTTP_HOST >> /tmp/eramba.env" www-data -su -s /bin/bash -c "printenv | grep USE_PROXY >> /tmp/eramba.env" www-data -su -s /bin/bash -c "printenv | grep PROXY_ >> /tmp/eramba.env" www-data +su -s /bin/bash -c "printenv | grep DB_ > /var/www/eramba/.env" www-data +su -s /bin/bash -c "printenv | grep CACHE_URL >> /var/www/eramba/.env" www-data +su -s /bin/bash -c "printenv | grep PUBLIC_ADDRESS >> /var/www/eramba/.env" www-data +su -s /bin/bash -c "printenv | grep HTTP_HOST >> /var/www/eramba/.env" www-data +su -s /bin/bash -c "printenv | grep USE_PROXY >> /var/www/eramba/.env" www-data +su -s /bin/bash -c "printenv | grep PROXY_ >> /var/www/eramba/.env" www-data su -s /bin/bash -c "crontab -u www-data /etc/cron.d/eramba-crontab" www-data From 3ae99d4622a8cafee65a5b0886c7f8babde23c6d Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 1 Nov 2022 19:39:01 +0100 Subject: [PATCH 11/13] Updates to github workflows to validate CRON container --- .github/workflows/Docker.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/Docker.yml b/.github/workflows/Docker.yml index b6927e2..7999b77 100644 --- a/.github/workflows/Docker.yml +++ b/.github/workflows/Docker.yml @@ -59,5 +59,13 @@ jobs: if docker exec -w /var/www/eramba/app/upgrade -u www-data eramba bin/cake system_health check; then exit 0 fi + + exit 1 + + - name: Migrations Status Check On CRON Container (to determine if DB connection is working) + run: | + if docker exec -w /var/www/eramba/app/upgrade -u www-data cron bin/cake migrations status; then + exit 0 + fi exit 1 From a94d832f41d3135f618b0202e154e3a6b44aa881 Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 2 Nov 2022 09:42:18 +0100 Subject: [PATCH 12/13] Removed `PUBLIC_ADDRESS` env() to allow configuring it in settings --- .env | 1 - docker-compose.simple-install.yml | 2 -- docker-cron-entrypoint.sh | 1 - 3 files changed, 4 deletions(-) diff --git a/.env b/.env index d0ac812..49b79d5 100644 --- a/.env +++ b/.env @@ -1,5 +1,4 @@ HTTP_HOST="localhost:8443" -PUBLIC_ADDRESS="https://localhost:8443" DB_HOST="mysql" DB_DATABASE="docker" DB_USERNAME="docker" diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 5493642..2ce03e9 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -35,7 +35,6 @@ services: DB_PASSWORD: ${DB_PASSWORD} CACHE_URL: ${CACHE_URL} HTTP_HOST: ${HTTP_HOST} - PUBLIC_ADDRESS: ${PUBLIC_ADDRESS} USE_PROXY: ${USE_PROXY} PROXY_HOST: ${PROXY_HOST} PROXY_PORT: ${PROXY_PORT} @@ -64,7 +63,6 @@ services: DB_PASSWORD: ${DB_PASSWORD} CACHE_URL: ${CACHE_URL} HTTP_HOST: ${HTTP_HOST} - PUBLIC_ADDRESS: ${PUBLIC_ADDRESS} USE_PROXY: ${USE_PROXY} PROXY_HOST: ${PROXY_HOST} PROXY_PORT: ${PROXY_PORT} diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh index 0b6ad9b..37d88a4 100755 --- a/docker-cron-entrypoint.sh +++ b/docker-cron-entrypoint.sh @@ -2,7 +2,6 @@ su -s /bin/bash -c "printenv | grep DB_ > /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep CACHE_URL >> /var/www/eramba/.env" www-data -su -s /bin/bash -c "printenv | grep PUBLIC_ADDRESS >> /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep HTTP_HOST >> /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep USE_PROXY >> /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep PROXY_ >> /var/www/eramba/.env" www-data From 1e45bedc044912b1b2f5d065ae8c274fa359c81d Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 2 Nov 2022 14:42:00 +0100 Subject: [PATCH 13/13] Removed HTTP_HOST env() --- .env | 1 - docker-compose.simple-install.yml | 2 -- docker-cron-entrypoint.sh | 1 - 3 files changed, 4 deletions(-) diff --git a/.env b/.env index 49b79d5..2fc1131 100644 --- a/.env +++ b/.env @@ -1,4 +1,3 @@ -HTTP_HOST="localhost:8443" DB_HOST="mysql" DB_DATABASE="docker" DB_USERNAME="docker" diff --git a/docker-compose.simple-install.yml b/docker-compose.simple-install.yml index 2ce03e9..8655766 100644 --- a/docker-compose.simple-install.yml +++ b/docker-compose.simple-install.yml @@ -34,7 +34,6 @@ services: DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} CACHE_URL: ${CACHE_URL} - HTTP_HOST: ${HTTP_HOST} USE_PROXY: ${USE_PROXY} PROXY_HOST: ${PROXY_HOST} PROXY_PORT: ${PROXY_PORT} @@ -62,7 +61,6 @@ services: DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} CACHE_URL: ${CACHE_URL} - HTTP_HOST: ${HTTP_HOST} USE_PROXY: ${USE_PROXY} PROXY_HOST: ${PROXY_HOST} PROXY_PORT: ${PROXY_PORT} diff --git a/docker-cron-entrypoint.sh b/docker-cron-entrypoint.sh index 37d88a4..6096bc2 100755 --- a/docker-cron-entrypoint.sh +++ b/docker-cron-entrypoint.sh @@ -2,7 +2,6 @@ su -s /bin/bash -c "printenv | grep DB_ > /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep CACHE_URL >> /var/www/eramba/.env" www-data -su -s /bin/bash -c "printenv | grep HTTP_HOST >> /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep USE_PROXY >> /var/www/eramba/.env" www-data su -s /bin/bash -c "printenv | grep PROXY_ >> /var/www/eramba/.env" www-data