diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3e39989 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.git +.github +.gitignore +legacy/ +doc/ +test/ +*.md +makefile diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5ace460 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index d656909..b76e680 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -10,31 +10,28 @@ jobs: strategy: fail-fast: false matrix: - version: [ "8.0", "8.1", "8.2", "8.3" ] + version: [ "8.1", "8.2", "8.3" ] name: ${{ matrix.version }} runs-on: ubuntu-latest env: VERSION: ${{ matrix.version }} steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Set up QEMU - uses: docker/setup-qemu-action@master + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@master - - uses: azure/docker-login@v1 + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + # Optional: avoids pull rate limits. Not available on fork PRs — that's fine. + uses: docker/login-action@v3 + continue-on-error: true with: username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Build - run: | - docker buildx create --name alpine-php - docker buildx use alpine-php - docker buildx inspect --bootstrap - ARCHS="linux/arm64" make build - - name: Run - run: | - make run-detached + run: ARCHS="linux/amd64" make build - name: Test Main - run: | - make test-main + run: make test-main + - name: Test Dev + run: make test-dev diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d538903..4e0dea8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -4,36 +4,36 @@ on: push: branches: - master + schedule: + # Weekly builds to pick up Alpine security patches + - cron: '0 4 * * 1' + jobs: push-to-registry: strategy: - fail-fast: true + fail-fast: false matrix: - version: [ "8.0", "8.1", "8.2", "8.3" ] + version: [ "8.1", "8.2", "8.3" ] arch: [ "linux/amd64,linux/arm64,linux/arm/v8,linux/arm/v7", ] env: VERSION: ${{ matrix.version }} ARCHS: ${{ matrix.arch }} - name: release-${{ matrix.version }}-${{ matrix.arch }} + name: release-${{ matrix.version }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Set up QEMU - uses: docker/setup-qemu-action@master + uses: docker/setup-qemu-action@v3 with: platforms: "all" - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@master - with: - install: true - - uses: azure/docker-login@v1 + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 with: username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - - run: | - docker buildx create --name alpine-php - docker buildx use alpine-php - make release \ No newline at end of file + - run: make release diff --git a/8.1/Dockerfile b/8.1/Dockerfile index 9d344e0..4dcafd5 100644 --- a/8.1/Dockerfile +++ b/8.1/Dockerfile @@ -4,6 +4,7 @@ LABEL maintainer="Jorge Arco " RUN apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/main add \ icu-libs \ + libsodium \ &&apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/community add \ # Current packages don't exist in other repositories libavif \ diff --git a/8.2/Dockerfile b/8.2/Dockerfile index 3e0dec4..29c7705 100644 --- a/8.2/Dockerfile +++ b/8.2/Dockerfile @@ -1,10 +1,10 @@ -FROM --platform=$BUILDPLATFORM alpine:edge as main +FROM --platform=$BUILDPLATFORM alpine:3.21 as main LABEL maintainer="Jorge Arco " -RUN apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/main add \ +RUN apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.21/main add \ icu-libs \ - && apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/community add \ + && apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.21/community add \ # Current packages don't exist in other repositories libavif \ gnu-libiconv \ @@ -56,7 +56,7 @@ ARG PASSWORD=root ARG COMPOSER_VERSION=2.5.1 -RUN apk add -U --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \ +RUN apk add -U --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.21/community/ \ php82-pear \ openssh \ supervisor \ diff --git a/7.1/Dockerfile b/legacy/7.1/Dockerfile similarity index 100% rename from 7.1/Dockerfile rename to legacy/7.1/Dockerfile diff --git a/7.1/devfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.1/devfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.1/devfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.1/devfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.1/devfs/etc/php7/conf.d/50-setting.ini b/legacy/7.1/devfs/etc/php7/conf.d/50-setting.ini similarity index 100% rename from 7.1/devfs/etc/php7/conf.d/50-setting.ini rename to legacy/7.1/devfs/etc/php7/conf.d/50-setting.ini diff --git a/7.1/devfs/etc/php7/conf.d/xdebug.ini b/legacy/7.1/devfs/etc/php7/conf.d/xdebug.ini similarity index 100% rename from 7.1/devfs/etc/php7/conf.d/xdebug.ini rename to legacy/7.1/devfs/etc/php7/conf.d/xdebug.ini diff --git a/7.1/devfs/etc/profile b/legacy/7.1/devfs/etc/profile similarity index 100% rename from 7.1/devfs/etc/profile rename to legacy/7.1/devfs/etc/profile diff --git a/7.1/devfs/etc/supervisor/conf.d/supervisord.conf b/legacy/7.1/devfs/etc/supervisor/conf.d/supervisord.conf similarity index 100% rename from 7.1/devfs/etc/supervisor/conf.d/supervisord.conf rename to legacy/7.1/devfs/etc/supervisor/conf.d/supervisord.conf diff --git a/7.1/rootfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.1/rootfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.1/rootfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.1/rootfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.1/rootfs/etc/php7/conf.d/50-setting.ini b/legacy/7.1/rootfs/etc/php7/conf.d/50-setting.ini similarity index 100% rename from 7.1/rootfs/etc/php7/conf.d/50-setting.ini rename to legacy/7.1/rootfs/etc/php7/conf.d/50-setting.ini diff --git a/7.1/rootfs/etc/php7/php-fpm.conf b/legacy/7.1/rootfs/etc/php7/php-fpm.conf similarity index 100% rename from 7.1/rootfs/etc/php7/php-fpm.conf rename to legacy/7.1/rootfs/etc/php7/php-fpm.conf diff --git a/7.2/Dockerfile b/legacy/7.2/Dockerfile similarity index 100% rename from 7.2/Dockerfile rename to legacy/7.2/Dockerfile diff --git a/7.2/devfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.2/devfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.2/devfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.2/devfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.2/devfs/etc/php7/conf.d/00_xdebug.ini b/legacy/7.2/devfs/etc/php7/conf.d/00_xdebug.ini similarity index 100% rename from 7.2/devfs/etc/php7/conf.d/00_xdebug.ini rename to legacy/7.2/devfs/etc/php7/conf.d/00_xdebug.ini diff --git a/7.2/devfs/etc/php7/conf.d/50-setting.ini b/legacy/7.2/devfs/etc/php7/conf.d/50-setting.ini similarity index 100% rename from 7.2/devfs/etc/php7/conf.d/50-setting.ini rename to legacy/7.2/devfs/etc/php7/conf.d/50-setting.ini diff --git a/7.2/devfs/etc/profile b/legacy/7.2/devfs/etc/profile similarity index 100% rename from 7.2/devfs/etc/profile rename to legacy/7.2/devfs/etc/profile diff --git a/7.2/devfs/etc/supervisor/conf.d/supervisord.conf b/legacy/7.2/devfs/etc/supervisor/conf.d/supervisord.conf similarity index 100% rename from 7.2/devfs/etc/supervisor/conf.d/supervisord.conf rename to legacy/7.2/devfs/etc/supervisor/conf.d/supervisord.conf diff --git a/7.2/rootfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.2/rootfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.2/rootfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.2/rootfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.2/rootfs/etc/php7/conf.d/50-setting.ini b/legacy/7.2/rootfs/etc/php7/conf.d/50-setting.ini similarity index 100% rename from 7.2/rootfs/etc/php7/conf.d/50-setting.ini rename to legacy/7.2/rootfs/etc/php7/conf.d/50-setting.ini diff --git a/7.2/rootfs/etc/php7/php-fpm.conf b/legacy/7.2/rootfs/etc/php7/php-fpm.conf similarity index 100% rename from 7.2/rootfs/etc/php7/php-fpm.conf rename to legacy/7.2/rootfs/etc/php7/php-fpm.conf diff --git a/7.3/Dockerfile b/legacy/7.3/Dockerfile similarity index 100% rename from 7.3/Dockerfile rename to legacy/7.3/Dockerfile diff --git a/7.3/devfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.3/devfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.3/devfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.3/devfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.3/devfs/etc/php7/conf.d/00_xdebug.ini b/legacy/7.3/devfs/etc/php7/conf.d/00_xdebug.ini similarity index 100% rename from 7.3/devfs/etc/php7/conf.d/00_xdebug.ini rename to legacy/7.3/devfs/etc/php7/conf.d/00_xdebug.ini diff --git a/7.3/devfs/etc/php7/conf.d/50-setting.ini b/legacy/7.3/devfs/etc/php7/conf.d/50-setting.ini similarity index 100% rename from 7.3/devfs/etc/php7/conf.d/50-setting.ini rename to legacy/7.3/devfs/etc/php7/conf.d/50-setting.ini diff --git a/7.3/devfs/etc/profile b/legacy/7.3/devfs/etc/profile similarity index 100% rename from 7.3/devfs/etc/profile rename to legacy/7.3/devfs/etc/profile diff --git a/7.3/devfs/etc/supervisor/conf.d/supervisord.conf b/legacy/7.3/devfs/etc/supervisor/conf.d/supervisord.conf similarity index 100% rename from 7.3/devfs/etc/supervisor/conf.d/supervisord.conf rename to legacy/7.3/devfs/etc/supervisor/conf.d/supervisord.conf diff --git a/7.3/rootfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.3/rootfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.3/rootfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.3/rootfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.3/rootfs/etc/php7/conf.d/50-setting.ini b/legacy/7.3/rootfs/etc/php7/conf.d/50-setting.ini similarity index 100% rename from 7.3/rootfs/etc/php7/conf.d/50-setting.ini rename to legacy/7.3/rootfs/etc/php7/conf.d/50-setting.ini diff --git a/7.3/rootfs/etc/php7/php-fpm.conf b/legacy/7.3/rootfs/etc/php7/php-fpm.conf similarity index 100% rename from 7.3/rootfs/etc/php7/php-fpm.conf rename to legacy/7.3/rootfs/etc/php7/php-fpm.conf diff --git a/7.4/Dockerfile b/legacy/7.4/Dockerfile similarity index 100% rename from 7.4/Dockerfile rename to legacy/7.4/Dockerfile diff --git a/7.4/devfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.4/devfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.4/devfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.4/devfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.4/devfs/etc/php7/conf.d/00_xdebug.ini b/legacy/7.4/devfs/etc/php7/conf.d/00_xdebug.ini similarity index 100% rename from 7.4/devfs/etc/php7/conf.d/00_xdebug.ini rename to legacy/7.4/devfs/etc/php7/conf.d/00_xdebug.ini diff --git a/7.4/devfs/etc/php7/conf.d/50_settings.ini b/legacy/7.4/devfs/etc/php7/conf.d/50_settings.ini similarity index 100% rename from 7.4/devfs/etc/php7/conf.d/50_settings.ini rename to legacy/7.4/devfs/etc/php7/conf.d/50_settings.ini diff --git a/7.4/devfs/etc/profile b/legacy/7.4/devfs/etc/profile similarity index 100% rename from 7.4/devfs/etc/profile rename to legacy/7.4/devfs/etc/profile diff --git a/7.4/devfs/etc/supervisord/conf.d/supervisord.conf b/legacy/7.4/devfs/etc/supervisord/conf.d/supervisord.conf similarity index 100% rename from 7.4/devfs/etc/supervisord/conf.d/supervisord.conf rename to legacy/7.4/devfs/etc/supervisord/conf.d/supervisord.conf diff --git a/7.4/rootfs/etc/php7/conf.d/00_opcache.ini b/legacy/7.4/rootfs/etc/php7/conf.d/00_opcache.ini similarity index 100% rename from 7.4/rootfs/etc/php7/conf.d/00_opcache.ini rename to legacy/7.4/rootfs/etc/php7/conf.d/00_opcache.ini diff --git a/7.4/rootfs/etc/php7/conf.d/50_settings.ini b/legacy/7.4/rootfs/etc/php7/conf.d/50_settings.ini similarity index 100% rename from 7.4/rootfs/etc/php7/conf.d/50_settings.ini rename to legacy/7.4/rootfs/etc/php7/conf.d/50_settings.ini diff --git a/7.4/rootfs/etc/php7/php-fpm.conf b/legacy/7.4/rootfs/etc/php7/php-fpm.conf similarity index 100% rename from 7.4/rootfs/etc/php7/php-fpm.conf rename to legacy/7.4/rootfs/etc/php7/php-fpm.conf diff --git a/8.0/Dockerfile b/legacy/8.0/Dockerfile similarity index 100% rename from 8.0/Dockerfile rename to legacy/8.0/Dockerfile diff --git a/8.0/devfs/etc/php8/conf.d/00_opcache.ini b/legacy/8.0/devfs/etc/php8/conf.d/00_opcache.ini similarity index 100% rename from 8.0/devfs/etc/php8/conf.d/00_opcache.ini rename to legacy/8.0/devfs/etc/php8/conf.d/00_opcache.ini diff --git a/8.0/devfs/etc/php8/conf.d/00_xdebug.ini b/legacy/8.0/devfs/etc/php8/conf.d/00_xdebug.ini similarity index 100% rename from 8.0/devfs/etc/php8/conf.d/00_xdebug.ini rename to legacy/8.0/devfs/etc/php8/conf.d/00_xdebug.ini diff --git a/8.0/devfs/etc/php8/conf.d/50_settings.ini b/legacy/8.0/devfs/etc/php8/conf.d/50_settings.ini similarity index 100% rename from 8.0/devfs/etc/php8/conf.d/50_settings.ini rename to legacy/8.0/devfs/etc/php8/conf.d/50_settings.ini diff --git a/8.0/devfs/etc/profile b/legacy/8.0/devfs/etc/profile similarity index 100% rename from 8.0/devfs/etc/profile rename to legacy/8.0/devfs/etc/profile diff --git a/8.0/devfs/etc/supervisord/conf.d/supervisord.conf b/legacy/8.0/devfs/etc/supervisord/conf.d/supervisord.conf similarity index 100% rename from 8.0/devfs/etc/supervisord/conf.d/supervisord.conf rename to legacy/8.0/devfs/etc/supervisord/conf.d/supervisord.conf diff --git a/8.0/rootfs/etc/php8/conf.d/00_opcache.ini b/legacy/8.0/rootfs/etc/php8/conf.d/00_opcache.ini similarity index 100% rename from 8.0/rootfs/etc/php8/conf.d/00_opcache.ini rename to legacy/8.0/rootfs/etc/php8/conf.d/00_opcache.ini diff --git a/8.0/rootfs/etc/php8/conf.d/50_settings.ini b/legacy/8.0/rootfs/etc/php8/conf.d/50_settings.ini similarity index 100% rename from 8.0/rootfs/etc/php8/conf.d/50_settings.ini rename to legacy/8.0/rootfs/etc/php8/conf.d/50_settings.ini diff --git a/8.0/rootfs/etc/php8/php-fpm.conf b/legacy/8.0/rootfs/etc/php8/php-fpm.conf similarity index 100% rename from 8.0/rootfs/etc/php8/php-fpm.conf rename to legacy/8.0/rootfs/etc/php8/php-fpm.conf diff --git a/legacy/README.md b/legacy/README.md new file mode 100644 index 0000000..4794921 --- /dev/null +++ b/legacy/README.md @@ -0,0 +1,16 @@ +# Legacy PHP versions + +These versions are **end-of-life** and no longer receive security updates from PHP.net. + +They are kept here for users who cannot upgrade, but are **not actively maintained** in this repository. + +| Version | PHP EOL | Alpine | +|---------|---------|--------| +| 7.1 | Dec 2019 | 3.7 | +| 7.2 | Nov 2020 | 3.9 | +| 7.3 | Dec 2021 | 3.12 | +| 7.4 | Nov 2022 | 3.14 | +| 8.0 | Nov 2023 | 3.14 | + +> ⚠️ **Use at your own risk.** These images may contain unpatched security vulnerabilities. +> If you're able to upgrade, please do so. See the [main README](../README.md) for supported versions. diff --git a/makefile b/makefile index 96be7e0..0242892 100644 --- a/makefile +++ b/makefile @@ -35,13 +35,13 @@ release: build docker buildx build --platform $(ARCHS) --push -t $(REPO):${SEMVER} --target main -f ${VERSION}/Dockerfile ${VERSION}/ docker buildx build --platform $(ARCHS) --push -t $(REPO):${SEMVER}-dev --target dev -f ${VERSION}/Dockerfile ${VERSION}/ -test-all: test-all - VERSION=8.2 make build - VERSION=8.1 make build - VERSION=8.0 make build - VERSION=8.2 make test-main - VERSION=8.1 make test-main - VERSION=8.0 make test-main - VERSION=8.2 make test-dev - VERSION=8.1 make test-dev - VERSION=8.0 make test-dev +test-all: + VERSION=8.3 $(MAKE) build + VERSION=8.2 $(MAKE) build + VERSION=8.1 $(MAKE) build + VERSION=8.3 $(MAKE) test-main + VERSION=8.2 $(MAKE) test-main + VERSION=8.1 $(MAKE) test-main + VERSION=8.3 $(MAKE) test-dev + VERSION=8.2 $(MAKE) test-dev + VERSION=8.1 $(MAKE) test-dev diff --git a/somefile.tar b/somefile.tar deleted file mode 100644 index 4efd658..0000000 Binary files a/somefile.tar and /dev/null differ