diff --git a/.github/workflows/build_docker_images-adminerevo.yaml b/.github/workflows/build_docker_images-adminerevo.yaml new file mode 100644 index 0000000..228b3ef --- /dev/null +++ b/.github/workflows/build_docker_images-adminerevo.yaml @@ -0,0 +1,106 @@ +name: 'build docker images: adminerevo' + +on: + #push: + # branches: + # - 'main' + # - 'master' + # paths: + # - 'adminerevo.wolfi.Dockerfile' + # - '.github/workflows/build_docker_images-adminerevo.yaml' + workflow_dispatch: + schedule: + - cron: '45 8 28 * *' # At 07:45 on day-of-month 28. + +defaults: + run: + shell: bash + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Shell-Script + id: script + run: | + BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" + BUILD_DATE_NUMERIC="${BUILD_DATE//[^[:digit:]]/}" + COMMIT_HASH=${GITHUB_SHA::8} + GIT_URL=$(echo "${GITHUB_SERVER_URL}" | awk -F/ '{print $3}' | sed 's/\/*$//') + GIT_URL=$(echo "$GIT_URL" | sed 's/github\.com/ghcr\.io/g') # GIT_URL switch to ghcr.io registry for GitHub + GIT_REPO=${GITHUB_REPOSITORY,,} + GIT_REPO_SHORT=${GIT_REPO#*/} + GIT_REPO_SHORT=${GIT_REPO_SHORT#"docker-"} + DOCKER_REPO=${{ secrets.DOCKER_USERNAME }}/${GIT_REPO_SHORT} + REDHAT_QUAY_REPO=${{ secrets.REDHAT_QUAY_USERNAME }}/${GIT_REPO_SHORT} + + #echo "ENVs: BUILD_DATE=${BUILD_DATE}, BUILD_DATE_NUMERIC=${BUILD_DATE_NUMERIC}, COMMIT_HASH=${COMMIT_HASH}, GIT_URL=${GIT_URL}, GIT_REPO=${GIT_REPO}" + + # Set output parameters to action. + echo "build_date=${BUILD_DATE}" >> "$GITHUB_OUTPUT" + echo "build_date_numeric=${BUILD_DATE_NUMERIC}" >> "$GITHUB_OUTPUT" + echo "commit_hash=${COMMIT_HASH}" >> "$GITHUB_OUTPUT" + echo "git_url=${GIT_URL}" >> "$GITHUB_OUTPUT" + echo "git_repo=${GIT_REPO}" >> "$GITHUB_OUTPUT" + echo "docker_repo=${DOCKER_REPO}" >> "$GITHUB_OUTPUT" + echo "redhat_quay_repo=${REDHAT_QUAY_REPO}" >> "$GITHUB_OUTPUT" + + - name: Set up QEMU + id: qemu + uses: docker/setup-qemu-action@v3 + with: + image: tonistiigi/binfmt:latest + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GIT Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ steps.script.outputs.git_url }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Login to DockerHub Container Registry + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to RED HAT Quay.io Container Registry + uses: docker/login-action@v3 + with: + registry: quay.io + username: ${{ secrets.REDHAT_QUAY_USERNAME }} + password: ${{ secrets.REDHAT_QUAY_PASSWORD }} + + - name: Build + uses: docker/build-push-action@v6 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./adminerevo.wolfi.Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + build-args: | + BUILD_DATE=${{steps.script.outputs.build_date}} + VCS_REF=${{steps.script.outputs.commit_hash}} + tags: | + docker.io/${{steps.script.outputs.docker_repo}}:adminerevo + quay.io/${{steps.script.outputs.redhat_quay_repo}}:adminerevo + ${{steps.script.outputs.git_url}}/${{steps.script.outputs.git_repo}}:adminerevo + + #- name: Docker Hub Description + # uses: peter-evans/dockerhub-description@v4 + # with: + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # repository: ${{steps.script.outputs.docker_repo}} + # short-description: ${{ github.event.repository.description }} + # readme-filepath: README.md \ No newline at end of file diff --git a/adminerevo.wolfi.Dockerfile b/adminerevo.wolfi.Dockerfile new file mode 100644 index 0000000..20eb7be --- /dev/null +++ b/adminerevo.wolfi.Dockerfile @@ -0,0 +1,35 @@ +#FROM ghcr.io/shyim/adminerevo:latest +FROM shyim/adminerevo:latest + +ARG VCS_REF +ARG BUILD_DATE + +LABEL org.opencontainers.image.title="AdminerEvo" \ + #org.opencontainers.image.authors="AdminerEvo community" \ + org.opencontainers.image.created="${BUILD_DATE}" \ + org.opencontainers.image.revision="${VCS_REF}" \ + org.opencontainers.image.description="AdminerEvo: Database management in a single PHP file." \ + org.opencontainers.image.documentation="https://github.com/adminerevo/adminerevo & https://github.com/shyim/adminerevo-docker" \ + org.opencontainers.image.base.name="docker.io/shyim/adminerevo:latest & cgr.dev/chainguard/wolfi-base:latest" \ + #org.opencontainers.image.licenses="Apache-2.0|GPL-2.0" \ + org.opencontainers.image.url="https://hub.docker.com/r/tobi312/tools" \ + org.opencontainers.image.source="https://github.com/Tob1as/docker-tools" + +# switch user +USER root + +RUN set -x ; \ + PHP_VERSION=$(php -v | awk '/^PHP/ {print $2}' | cut -d'.' -f1,2) ; \ + installPackages=" \ + php-${PHP_VERSION}-pecl-mongodb \ + #php-${PHP_VERSION}-pecl-sqlsrv \ + #php-${PHP_VERSION}-pecl-pdosqlsrv \ + #php-${PHP_VERSION}-odbc \ + #php-${PHP_VERSION}-pdo_odbc \ + #php-${PHP_VERSION}-pdo_dblib \ + #netcat-openbsd \ + " ; \ + apk add --no-cache $installPackages + +# switch user back +USER nonroot \ No newline at end of file