Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
1428d9d
Cleaned up comments
jaydrogers May 6, 2022
6c5bc47
Added Multi-arch support
jaydrogers May 6, 2022
3c259fc
Fixed tage reference
jaydrogers May 6, 2022
9fff127
Removed quotes
jaydrogers May 6, 2022
2556e8f
Optimized development script
jaydrogers May 6, 2022
49f9716
Upgraded development to Docker Buildx
jaydrogers May 6, 2022
d3b5ffd
Added upstream support
jaydrogers May 11, 2022
57a01b1
Added QEMU
jaydrogers May 11, 2022
c11555c
Added BuildX to production pipeline
jaydrogers May 11, 2022
53a297f
Added platforms
jaydrogers May 11, 2022
8f62240
Removed rare platforms
jaydrogers May 11, 2022
927687a
Added base ubuntu version
jaydrogers May 11, 2022
b30794d
Re-added upstream channel
jaydrogers May 11, 2022
fe82709
Simplified development process
jaydrogers May 12, 2022
e3314cf
Changed S6 Overlay commands to /command
jaydrogers May 12, 2022
b623c8a
Refactored to standardized name of 'src' and 'dist'
jaydrogers May 12, 2022
e71caf1
Updated warning
jaydrogers May 12, 2022
31c1d4f
Changed source and dist directories
jaydrogers May 12, 2022
aec378f
Clarified template location
jaydrogers May 12, 2022
7833600
Added Ubuntu version support
jaydrogers May 12, 2022
9cfb8f1
Updated commands to be compatible with S6 Overlay v3.x
jaydrogers May 12, 2022
66c6722
Updated note to 'dist' folder
jaydrogers May 12, 2022
fa2f443
Changed to 'dist' folder
jaydrogers May 12, 2022
dff2e75
Centralized workflows
jaydrogers May 12, 2022
ba6dce5
Removed requirement on calling ubuntu base versions
jaydrogers May 12, 2022
104123f
Removed null variable
jaydrogers May 12, 2022
af4561f
Removed unused run command
jaydrogers May 13, 2022
e00253d
Set scripts to executable
jaydrogers May 13, 2022
8d3c420
Separated build jobs
jaydrogers May 13, 2022
63bb452
Added job dependencies
jaydrogers May 13, 2022
13762fa
Added quotes
jaydrogers May 13, 2022
afec142
Changed variables to global
jaydrogers May 13, 2022
329bf5a
Escaped variables
jaydrogers May 13, 2022
a4151a2
Removed environment variables
jaydrogers May 13, 2022
a86eaba
Make services executable
jaydrogers May 13, 2022
8534f6c
Updated all services to be executable
jaydrogers May 13, 2022
24193b6
Updated to bash
jaydrogers May 13, 2022
e4870eb
Added CHMOD at Docker image level
jaydrogers May 13, 2022
13cca02
Fixed PHP variation
jaydrogers May 13, 2022
e92f4db
Merge branch 'main' into dev
jaydrogers May 13, 2022
d3a3498
Remove php_admin flags. Fixes #45
jaydrogers May 13, 2022
e593cf0
Set security settings to admin flags
jaydrogers May 13, 2022
14dae48
Added PHP_OPEN_BASEDIR. Fixes #52. Thanks to @herpaderpaldent
jaydrogers May 13, 2022
a8367de
add php intl package to support laravel email validation rules
skylerkatz Jun 22, 2022
1e7ea22
Merge pull request #56 from skylerkatz/add-php-intl-package
jaydrogers Jun 22, 2022
352333d
Completed build for "int" package (ref #56)
jaydrogers Jun 22, 2022
0e1e6be
Added Composer variables
jaydrogers Jun 30, 2022
e37ab2a
added phpx.x-bcmath
alexjustesen Sep 10, 2022
834560c
Merge branch 'main' into dev
jaydrogers Sep 14, 2022
baeccec
Merge branch 'dev' into patch-1
jaydrogers Sep 14, 2022
03d79f5
Merge pull request #58 from alexjustesen/patch-1
jaydrogers Sep 14, 2022
13ef55c
Updated README to mermaid
jaydrogers Sep 14, 2022
5754475
Upgraded to Ubuntu 22.04
jaydrogers Sep 14, 2022
2995b01
Updated Ubuntu version to be dynamic
jaydrogers Sep 14, 2022
f0cca8b
Added Matrix to workflow
jaydrogers Sep 14, 2022
283cf29
Updated all references to 22.04
jaydrogers Sep 14, 2022
b8cce1f
Restored matrix jobs to be by version only
jaydrogers Sep 14, 2022
8b02690
Restored base Ubuntu version
jaydrogers Sep 14, 2022
a5ca7c1
Fixed order of service execution
jaydrogers Sep 18, 2022
32b4402
Converted to new S6 Overlay format
jaydrogers Sep 20, 2022
e36db8e
Reset build numbers
jaydrogers Sep 20, 2022
5cabc56
Configured working S6 overlay service in new format
jaydrogers Sep 20, 2022
a1c36c5
Merge branch 'main' into dev
jaydrogers Sep 21, 2022
8685e4f
Merge branch 'main' into dev
jaydrogers Sep 21, 2022
f731f1e
Decreased verbosity
jaydrogers Sep 21, 2022
fc6cccc
Converted runas-user to oneshot
jaydrogers Sep 21, 2022
a3b4556
Converted Laravel Automations to new S6 Overlay methods
jaydrogers Sep 21, 2022
4cd4b56
Allow versions to be passed to the build command
jaydrogers Sep 21, 2022
780e15c
Converted Apache to new S6 Overlay standard
jaydrogers Sep 21, 2022
f70abe5
Added S6 verbosity
jaydrogers Sep 21, 2022
5e95838
Updated NGINX to S6 overlay standard
jaydrogers Sep 21, 2022
ebbaef9
Converted services to S6 overlay standards
jaydrogers Sep 22, 2022
ef27e31
Merge branch 'main' into dev
jaydrogers Sep 22, 2022
b1eb26a
Add Readiness Checks (#75)
jaydrogers Sep 23, 2022
424b051
Adjusted upstream names
jaydrogers Sep 26, 2022
dd9952f
Removed debugging
jaydrogers Sep 26, 2022
453deb8
Adjusted to multi-stage build
jaydrogers Sep 26, 2022
015d0a6
Removed wget
jaydrogers Sep 26, 2022
cf10448
Adjusted repo config
jaydrogers Sep 26, 2022
90ba3e0
Fixed dependency issues
jaydrogers Sep 26, 2022
f7a0d9e
Cleanup/remove templating (#77)
jaydrogers Sep 26, 2022
fd38526
Clarified Docker Desktop
jaydrogers Sep 26, 2022
35c6e1b
Adjusted version to run from the matrix
jaydrogers Sep 26, 2022
d1c218d
Added ca-certificates to repo-config stage
jaydrogers Sep 26, 2022
540ec5b
FIxed READMEs
jaydrogers Sep 26, 2022
c4bf57a
Fixed README
jaydrogers Sep 26, 2022
6957475
Add PHP 8.2 Support (#78)
jaydrogers Sep 27, 2022
db61b3b
Allow SSL settings to be configured with "SSL_MODE" (#79)
jaydrogers Sep 27, 2022
ae064c6
Removed redundant exec keyword
jaydrogers Sep 30, 2022
f831cb2
Disable S6 service timeouts (Fixes #81)
jaydrogers Oct 4, 2022
b0716db
Set the webuser via S6 Overlay's method
jaydrogers Oct 5, 2022
b94f201
Change production images to only be run on releases
jaydrogers Oct 6, 2022
95837fd
Revert "Change production images to only be run on releases"
jaydrogers Oct 24, 2022
70b0c31
Cleaned up comments
jaydrogers Oct 24, 2022
20eeb90
Merge branch 'main' into dev
jaydrogers Oct 24, 2022
9501b9a
Upgraded Github Actions to latest versions
jaydrogers Oct 24, 2022
44b4156
Added sponsors workflow
jaydrogers Oct 24, 2022
ff80efb
Updated to latest tj-actions/branch-names
jaydrogers Oct 24, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .git-config/hooks/pre-commit

This file was deleted.

Binary file removed .github/dependency-diagram.png
Binary file not shown.
122 changes: 34 additions & 88 deletions .github/workflows/docker-publish-beta.yml
Original file line number Diff line number Diff line change
@@ -1,98 +1,44 @@
name: Docker Publish (Beta Images)

on:
# When changes are pushed to the "dev" branch, run it
push:
branches:
- dev

# Run every week at 0800 UTC to update the images
schedule:
- cron: '0 8 * * 1'

jobs:
push:
runs-on: ubuntu-20.04

# Configure our deployment strategy. Order is important here and we want it to go: CLI < FPM < FPM-NGINX
strategy:
# We want to limit the number of jobs to the number of versions that we're offering (since we want the dependency order to be built correctly)
max-parallel: 3
# Set our base image and versions here
matrix:
####################################################################################################################
# Possibly delete this "base-image" thing. (See https://github.com/serversideup/docker-php/issues/8)
####################################################################################################################
# base-image:
# - ubuntu:20.04
php-variation:
- cli
- fpm
- fpm-nginx
- fpm-apache
php-version:
- "7.4"
- "8.0"
- "8.1"

steps:
- uses: actions/checkout@v2
with:
ref: dev

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

####################################################################
# Commenting this out for further testing & structure (See https://github.com/serversideup/docker-php/issues/8)
####################################################################
# - name: Cache base image digest
# uses: actions/cache@v2
# with:
# path: ${{ runner.temp }}/.base-image-digest
# key: base-image-digest

# - name: Read cached base image digest
# id: cached-base-image-digest
# run: |
# touch "${{ runner.temp }}/.base-image-digest"
# echo "::set-output name=sha256::$(head -n 1 "${{ runner.temp }}/.base-image-digest")"

# - name: Pull base image
# run: docker pull ${{ matrix.base-image }}

# - name: Set base image digest
# id: base-image-digest
# run: echo "::set-output name=sha256::$(docker inspect --format='{{index .RepoDigests 0}}' ${{ matrix.base-image }})"

# - name: Build image
# if: steps.base-image-digest.outputs.sha256 != steps.cached-base-image-digest.outputs.sha256
# run: docker build php/${{ matrix.php-version }}/. --tag serversideup/php:${{ matrix.php-version }}

# - name: Push image to DockerHub
# if: steps.base-image-digest.outputs.sha256 != steps.cached-base-image-digest.outputs.sha256
# run: docker push serversideup/php:${{ matrix.php-version }}

# - name: Update base image digest cache
# run: |
# echo "${{ steps.base-image-digest.outputs.sha256 }}" >"${{ runner.temp }}/.base-image-digest"
####################################################################

- name: Build and tag image
run: docker build --build-arg UPSTREAM_CHANNEL="beta-" --pull generated-dockerfiles/${{ matrix.php-version }}/${{ matrix.php-variation }}/. --tag serversideup/php:beta-${{ matrix.php-version }}-${{ matrix.php-variation }}

- name: Push version image to DockerHub
run: docker push serversideup/php:beta-${{ matrix.php-version }}-${{ matrix.php-variation }}

##################################################
# Commenting this out until further notice
##################################################
# trigger_downstream_jobs:
# needs: push
# runs-on: ubuntu-20.04
# steps:
# - name: Trigger downstream builds
# run: curl --fail --output "/dev/null" --silent --show-error -X POST -F token=${{ secrets.DOWNSTREAM_BUILD_TOKEN }} -F ref=$GITHUB_REF ${{ secrets.DOWNSTREAM_BUILD_WEBHOOK_ENDPOINT }}
cli:
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: "beta-"
tag-prefix: "beta-"
php-variation: cli
secrets: inherit

fpm:
needs: cli
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: "beta-"
tag-prefix: "beta-"
php-variation: fpm
secrets: inherit

fpm-nginx:
needs: fpm
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: "beta-"
tag-prefix: "beta-"
php-variation: fpm-nginx
secrets: inherit

fpm-apache:
needs: fpm
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: "beta-"
tag-prefix: "beta-"
php-variation: fpm-apache
secrets: inherit
75 changes: 33 additions & 42 deletions .github/workflows/docker-publish-production.yml
Original file line number Diff line number Diff line change
@@ -1,63 +1,54 @@
name: Docker Publish (Production Images)

on:
# When changes are pushed to the "main" branch, run it
push:
branches:
- main

# Run every week at 0800 UTC to update the images
schedule:
- cron: '0 8 * * 2'

jobs:
push:
runs-on: ubuntu-20.04
cli:
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: ''
tag-prefix: ''
php-variation: cli
secrets: inherit

# Configure our deployment strategy. Order is important here and we want it to go: CLI < FPM < FPM-NGINX
strategy:
# We want to limit the number of jobs to the number of versions that we're offering (since we want the dependency order to be built correctly)
max-parallel: 3
# Set our base image and versions here
matrix:
####################################################################################################################
# Possibly delete this "base-image" thing. (See https://github.com/serversideup/docker-php/issues/8)
####################################################################################################################
# base-image:
# - ubuntu:20.04
php-variation:
- cli
- fpm
- fpm-nginx
- fpm-apache
php-version:
- "7.4"
- "8.0"
- "8.1"
fpm:
needs: cli
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: ''
tag-prefix: ''
php-variation: fpm
secrets: inherit

steps:
- uses: actions/checkout@v2
with:
ref: main

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
fpm-nginx:
needs: fpm
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: ''
tag-prefix: ''
php-variation: fpm-nginx
secrets: inherit

- name: Build and tag image
run: docker build --pull generated-dockerfiles/${{ matrix.php-version }}/${{ matrix.php-variation }}/. --tag serversideup/php:${{ matrix.php-version }}-${{ matrix.php-variation }}-v1.5.0
fpm-apache:
needs: fpm
uses: ./.github/workflows/workflow-docker-publish.yml
with:
upstream-channel-prefix: ''
tag-prefix: ''
php-variation: fpm-apache
secrets: inherit

- name: Push version image to DockerHub
run: docker push serversideup/php:${{ matrix.php-version }}-${{ matrix.php-variation }}-v1.5.0

update_container_readme:
runs-on: ubuntu-latest
name: Push README to Docker Hub
steps:
- name: git checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
ref: main

Expand All @@ -74,7 +65,7 @@ jobs:

trigger_downstream_jobs:
needs: push
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Trigger downstream builds
run: curl --fail --output "/dev/null" --silent --show-error -X POST -F token=${{ secrets.DOWNSTREAM_BUILD_TOKEN }} -F ref=$GITHUB_REF ${{ secrets.DOWNSTREAM_BUILD_WEBHOOK_ENDPOINT }}
28 changes: 28 additions & 0 deletions .github/workflows/sponsors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Generate Sponsors README
on:
workflow_dispatch:
schedule:
- cron: 30 15 * * 0-6
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v3

- name: Generate Sponsors πŸ’–
uses: JamesIves/github-sponsors-readme-action@v1
with:
organization: true
maximum: 500
fallback: '<p align="center"><a href="https://github.com/sponsors/serversideup"><img src="https://521public.s3.amazonaws.com/serversideup/sponsors/sponsor-empty-state.png" alt="Sponsors"></a></p>'
token: ${{ secrets.SPONSORS_README_ACTION_PERSONAL_ACCESS_TOKEN }}
marker: 'supporters'
template: '<a href="https://github.com/{{{ login }}}"><img src="https://github.com/{{{ login }}}.png" width="40px" alt="{{{ login }}}" /></a>&nbsp;&nbsp;'
file: 'README.md'

- name: Deploy to GitHub Pages πŸš€
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: main
folder: '.'
70 changes: 70 additions & 0 deletions .github/workflows/workflow-docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
on:
workflow_call:
inputs:
upstream-channel-prefix:
required: true
type: string
default: ''
base-os-flavor:
required: false
type: string
default: 'ubuntu'
base-os-version:
required: false
type: string
default: '22.04'
tag-prefix:
required: true
type: string
default: 'beta-'
php-variation:
required: true
type: string

jobs:
docker-publish:
runs-on: ubuntu-22.04
strategy:
matrix:
php-version:
- "7.4"
- "8.0"
- "8.1"
- "8.2"
steps:
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v6

- uses: actions/checkout@v3
with:
ref: ${{ steps.branch-name.outputs.current_branch }}

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build and push
uses: docker/build-push-action@v3
with:
build-args: |
UPSTREAM_CHANNEL=${{ inputs.upstream-channel-prefix }}
BASE_OS_FLAVOR=${{ inputs.base-os-flavor }}
BASE_OS_VERSION=${{ inputs.base-os-version }}
PHP_VERSION=${{ matrix.php-version }}
context: src/${{ inputs.php-variation }}/.
platforms: |
linux/amd64
linux/arm/v7
linux/arm64/v8
pull: true
push: true
tags: serversideup/php:${{ inputs.tag-prefix}}${{ matrix.php-version }}-${{ inputs.php-variation }}
Loading