From 0802d065ce29f960e533ef6f0a9d7abdcfd6264c Mon Sep 17 00:00:00 2001 From: Juraj Majer Date: Mon, 22 Jul 2024 21:27:20 +0200 Subject: [PATCH] Building docker image --- .github/workflows/build-docker-image.yml | 40 ++++++++++++++++++++++ Dockerfile | 7 ++++ holiday_library/utils/LunarPhasesUtils.php | 8 ++--- 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/build-docker-image.yml create mode 100644 Dockerfile diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml new file mode 100644 index 0000000..826ce9b --- /dev/null +++ b/.github/workflows/build-docker-image.yml @@ -0,0 +1,40 @@ +name: Build Docker Image + +# Configures this workflow to run manually. +on: workflow_dispatch + +# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }}/enrico:1.00 + +# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. +jobs: + build-and-push-image: + runs-on: ubuntu-latest + # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Uses the `docker/login-action` action to log in to the Container registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages. + # It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository. + - name: Build and push Docker image + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + push: true + file: ./Dockerfile + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8ff2a6c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM php:8.3-apache +RUN docker-php-ext-install calendar && docker-php-ext-configure calendar +COPY holiday_library/ /var/www/html/holiday_library +COPY ics/ /var/www/html/ics +COPY json/ /var/www/html/json +COPY ws/ /var/www/html/ws +EXPOSE 80 \ No newline at end of file diff --git a/holiday_library/utils/LunarPhasesUtils.php b/holiday_library/utils/LunarPhasesUtils.php index 484ad55..ff6e4b1 100644 --- a/holiday_library/utils/LunarPhasesUtils.php +++ b/holiday_library/utils/LunarPhasesUtils.php @@ -39,10 +39,10 @@ private function getNextMoonPhase($date, $countryCode, $moonPhase) { $nextMoonPhase = $moonPhaseCalculator->next_full_moon(); } } - $retVal = new EnricoDate(date("j", $nextMoonPhase), date("n", $nextMoonPhase), date("Y", $nextMoonPhase)); - $retVal->hour = date("G", $nextMoonPhase); - $retVal->minute = date("i", $nextMoonPhase); - $retVal->second = date("s", $nextMoonPhase); + $retVal = new EnricoDate(date("j", intval($nextMoonPhase)), date("n", intval($nextMoonPhase)), date("Y", intval($nextMoonPhase))); + $retVal->hour = date("G", intval($nextMoonPhase)); + $retVal->minute = date("i", intval($nextMoonPhase)); + $retVal->second = date("s", intval($nextMoonPhase)); $retVal = $this->dateUtils->addSeconds($retVal, DateUtils::$diffToUTC[$countryCode] * 60 * 60); date_default_timezone_set($system_timezone);