diff --git a/.woodpecker/build_dev.yml b/.woodpecker/build_dev.yml index 3cb0c57..4c03e75 100644 --- a/.woodpecker/build_dev.yml +++ b/.woodpecker/build_dev.yml @@ -10,14 +10,6 @@ when: event: [ push, manual ] steps: - - gen_tags: - image: docker - commands: - - pwd - - ./gen-version-list.sh "v2.0.4" php-${PHP_VERSION} - - cat tags.txt - dev_alpine_build_and_publish: image: woodpeckerci/plugin-docker-buildx settings: diff --git a/.woodpecker/build_release.yml b/.woodpecker/build_release.yml index 4a1b013..b305ba4 100644 --- a/.woodpecker/build_release.yml +++ b/.woodpecker/build_release.yml @@ -1,9 +1,9 @@ matrix: PHP_VERSION: - - 8 - - 8.3 - - 8.2 - 8.1 + - 8.2 + - 8.3 + - 8 when: branch: diff --git a/Dockerfile b/Dockerfile index d60ea31..53d6b08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,9 @@ FROM php:${BASE_VERSION}-fpm-alpine # port to for the webserver ENV WEBSERVER_PORT=8080 +# path without leading / (slash) +ENV HEALTHCHECK_PATH="" + COPY start-container.sh /usr/local/bin/start-container RUN apk add --no-cache \ @@ -25,11 +28,16 @@ RUN apk add --no-cache \ php-exif \ php-xmlwriter \ php-tokenizer \ + php-simplexml \ + php-xmlreader \ composer \ npm \ && docker-php-ext-install filter pdo_mysql \ && chmod +x /usr/local/bin/start-container +HEALTHCHECK --interval=5m --timeout=3s --start-period=5m --start-interval=10s \ + CMD curl -f http://localhost:${WEBSERVER_PORT}/${HEALTHCHECK_PATH} || exit 1 + EXPOSE ${WEBSERVER_PORT} WORKDIR /var/www/html diff --git a/build/start-container.sh b/build/start-container.sh index 38c8251..c2a3e74 100644 --- a/build/start-container.sh +++ b/build/start-container.sh @@ -3,8 +3,13 @@ # exit when any command fails set -e +if [ ! -f /var/www/html/artisan ]; then + echo "No existing Laravel project found" + exit +fi + # install extra packages and extensions on first boot -if [[ ! -f /etc/first_boot ]]; then +if [[ $(id -u) -eq 0 && ! -f /etc/first_boot ]]; then if [[ -n "${EXTRA_APK_PACKAGES// /}" ]]; then # shellcheck disable=SC2086 apk add --no-cache $EXTRA_APK_PACKAGES @@ -23,12 +28,12 @@ fi if [[ "$BOOT_NPM_INSTALL" = true ]]; then echo "npm install" - npm install + npm install --cache /tmp/npm fi -if [ ! -f /var/www/html/artisan ]; then - echo "No existing Laravel project found" - exit +if [[ "$BOOT_MIGRATE" = true ]]; then + echo "artisan migrate" + php /var/www/html/artisan migrate fi if [[ "$BOOT_NPM_DEV" = true ]]; then diff --git a/gen-tag-list.sh b/gen-tag-list.sh index 2c79618..c49ebd6 100755 --- a/gen-tag-list.sh +++ b/gen-tag-list.sh @@ -12,14 +12,22 @@ fi version=$1 # Suffix -[[ -n $2 ]] && suffix="-$2" || suffix="" +suffix="" +if [[ -n $2 ]]; then + suffix="-$2" +fi + +touch tags.txt +if [[ "$2" = "php-8" ]]; then + echo "latest" >> tags.txt +fi # Check if the first character is "V" or "v" and remove it if [[ "${version:0:1}" == "V" || "${version:0:1}" == "v" ]]; then version="${version#?}" fi -echo "latest$suffix" > tags.txt +echo "latest$suffix" >> tags.txt echo "$version" | cut -d'.' -f1 | xargs -I {} echo "{}$suffix" >> tags.txt echo "$version" | cut -d'.' -f1,2 | xargs -I {} echo "{}$suffix" >> tags.txt echo "$version" | cut -d'.' -f1,2,3 | xargs -I {} echo "{}$suffix" >> tags.txt \ No newline at end of file