Skip to content

Commit

Permalink
Add Alpine-based Docker images (#77)
Browse files Browse the repository at this point in the history
Co-authored-by: mortexa <seyed.me720@gmail.com>
  • Loading branch information
dir and smortexa committed May 16, 2024
1 parent bd6a23a commit eb792c6
Show file tree
Hide file tree
Showing 11 changed files with 896 additions and 170 deletions.
69 changes: 64 additions & 5 deletions .github/workflows/frankenphp-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ on:
- '**.md'

jobs:
build:
name: Build and Run Docker image
debian-build:
name: Build and Run Debian-based Docker image
runs-on: ubuntu-latest
strategy:
fail-fast: true
Expand All @@ -41,8 +41,8 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.setup }}
restore-keys: ${{ runner.os }}-composer-
key: "${{ runner.os }}-composer-${{ matrix.setup }}"
restore-keys: "${{ runner.os }}-composer-"

- name: Create app directory
run: mkdir -p /var/www
Expand All @@ -59,7 +59,7 @@ jobs:
run: sudo cp -R FrankenPHP.Dockerfile .dockerignore deployment/ /var/www/app/

- name: Build image
run: docker build -t app:local -f FrankenPHP.Dockerfile .
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f FrankenPHP.Dockerfile .
working-directory: /var/www/app

- name: Run the Docker container
Expand All @@ -71,3 +71,62 @@ jobs:

- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000

alpine-build:
name: Build and Run Alpine-based Docker image
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [ 8.2, 8.3 ]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Setup PHP with Composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
extensions: dom, curl, libxml, mbstring, zip
tools: composer:v2
coverage: none

- name: Get Composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache PHP dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: "${{ runner.os }}-composer-${{ matrix.setup }}"
restore-keys: "${{ runner.os }}-composer-"

- name: Create app directory
run: mkdir -p /var/www

- name: Install a fresh Laravel app
run: sudo composer create-project laravel/laravel app
working-directory: /var/www

- name: Install Laravel Octane
run: sudo composer require laravel/octane
working-directory: /var/www/app

- name: Copy required content to dockerize the app
run: sudo cp -R FrankenPHP.Alpine.Dockerfile .dockerignore deployment/ /var/www/app/

- name: Build image
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f FrankenPHP.Alpine.Dockerfile .
working-directory: /var/www/app

- name: Run the Docker container
run: docker run -d --rm -p 8000:8000 app:local
working-directory: /var/www/app

- name: Wait for the container
run: sleep 10s

- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000
69 changes: 64 additions & 5 deletions .github/workflows/roadrunner-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ on:
- '**.md'

jobs:
build:
name: Build and Run Docker image
debian-build:
name: Build and Run Debian-based Docker image
runs-on: ubuntu-latest
strategy:
fail-fast: true
Expand All @@ -41,8 +41,8 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.setup }}
restore-keys: ${{ runner.os }}-composer-
key: "${{ runner.os }}-composer-${{ matrix.setup }}"
restore-keys: "${{ runner.os }}-composer-"

- name: Create app directory
run: mkdir -p /var/www
Expand All @@ -59,7 +59,7 @@ jobs:
run: sudo cp -R RoadRunner.Dockerfile .dockerignore deployment/ /var/www/app/

- name: Build image
run: docker build -t app:local -f RoadRunner.Dockerfile .
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f RoadRunner.Dockerfile .
working-directory: /var/www/app

- name: Run the Docker container
Expand All @@ -71,3 +71,62 @@ jobs:

- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000

alpine-build:
name: Build and Run Alpine-based Docker image
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [ 8.2, 8.3 ]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Setup PHP with Composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
extensions: dom, curl, libxml, mbstring, zip
tools: composer:v2
coverage: none

- name: Get Composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache PHP dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: "${{ runner.os }}-composer-${{ matrix.setup }}"
restore-keys: "${{ runner.os }}-composer-"

- name: Create app directory
run: mkdir -p /var/www

- name: Install a fresh Laravel app
run: sudo composer create-project laravel/laravel app
working-directory: /var/www

- name: Install Laravel Octane
run: sudo composer require laravel/octane spiral/roadrunner-cli spiral/roadrunner-http --with-all-dependencies
working-directory: /var/www/app

- name: Copy required content to dockerize the app
run: sudo cp -R RoadRunner.Alpine.Dockerfile .dockerignore deployment/ /var/www/app/

- name: Build image
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f RoadRunner.Alpine.Dockerfile .
working-directory: /var/www/app

- name: Run the Docker container
run: docker run -d --rm -p 8000:8000 app:local
working-directory: /var/www/app

- name: Wait for the container
run: sleep 10s

- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000
69 changes: 64 additions & 5 deletions .github/workflows/swoole-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ on:
- '**.md'

jobs:
build:
name: Build and Run Docker image
debian-build:
name: Build and Run Debian-based Docker image
runs-on: ubuntu-latest
strategy:
fail-fast: true
Expand All @@ -41,8 +41,8 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.setup }}
restore-keys: ${{ runner.os }}-composer-
key: "${{ runner.os }}-composer-${{ matrix.setup }}"
restore-keys: "${{ runner.os }}-composer-"

- name: Create app directory
run: mkdir -p /var/www
Expand All @@ -59,7 +59,7 @@ jobs:
run: sudo cp -R Swoole.Dockerfile .dockerignore deployment/ /var/www/app/

- name: Build image
run: docker build -t app:local -f Swoole.Dockerfile .
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f Swoole.Dockerfile .
working-directory: /var/www/app

- name: Run the Docker container
Expand All @@ -71,3 +71,62 @@ jobs:

- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000

alpine-build:
name: Build and Run Alpine-based Docker image
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [ 8.2, 8.3 ]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Setup PHP with Composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
extensions: dom, curl, libxml, mbstring, zip
tools: composer:v2
coverage: none

- name: Get Composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache PHP dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: "${{ runner.os }}-composer-${{ matrix.setup }}"
restore-keys: "${{ runner.os }}-composer-"

- name: Create app directory
run: mkdir -p /var/www

- name: Install a fresh Laravel app
run: sudo composer create-project laravel/laravel app
working-directory: /var/www

- name: Install Laravel Octane
run: sudo composer require laravel/octane
working-directory: /var/www/app

- name: Copy required content to dockerize the app
run: sudo cp -R Swoole.Alpine.Dockerfile .dockerignore deployment/ /var/www/app/

- name: Build image
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f Swoole.Alpine.Dockerfile .
working-directory: /var/www/app

- name: Run the Docker container
run: docker run -d --rm -p 8000:8000 app:local
working-directory: /var/www/app

- name: Wait for the container
run: sleep 10s

- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000
Loading

0 comments on commit eb792c6

Please sign in to comment.