Skip to content

Add php gd and swoole/octane support#132

Merged
thunder-al merged 4 commits into
mainfrom
infra-update-1751985382434
Jul 9, 2025
Merged

Add php gd and swoole/octane support#132
thunder-al merged 4 commits into
mainfrom
infra-update-1751985382434

Conversation

@thunder-al

@thunder-al thunder-al commented Jul 8, 2025

Copy link
Copy Markdown
Collaborator

Closes #131

  • Updated ubi 9.5 -> 9.6
  • Added php-gd ext
  • Added libcares, swoole for octane
  • Removed old mix-manifest.json file
  • Added new production OCI image
    • uses same base image. dev environment ~= prod environment
    • builds faster, uses layer and fs caches and, generally, builds faster
    • need to be tested in real k8s environment

@thunder-al thunder-al marked this pull request as ready for review July 9, 2025 01:55
@thunder-al thunder-al requested review from Thiritin and Copilot July 9, 2025 01:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the Docker images for both development and production, adds PHP GD and Swoole/c-ares support for Octane, and removes the legacy mix-manifest.json in favor of the new asset build pipeline.

  • Bumps UBI base images to 9.6 and includes php-gd, php-swoole, and c-ares.
  • Deletes old public/mix-manifest.json and verifies presence of new public/build/manifest.json in entrypoint.
  • Introduces optimized multi-stage Containerfiles, entrypoint scripts, and documentation for dev and release images.

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
public/mix-manifest.json Removed legacy manifest now replaced by public/build/manifest.json.
infra/release/image/php.ini Added PHP tuning and OPcache configuration.
infra/release/image/entrypoint.sh Script to verify dependencies and start Octane in production.
infra/release/image/README.md Documentation for building the production image.
infra/release/image/Containerfile Multi-stage Containerfile for optimized production image.
infra/dev/image/README.md Documentation for building and running the development image.
infra/dev/image/Containerfile Updated dev Containerfile: base image bump, added GD/Swoole.
docker-compose.yml Bumped laravel.test image tag from v1 to v2.
.env.example Updated commented DEV_SERVER_COMMAND for Octane support.
.dockerignore Adjusted ignore patterns (removed .github/workflows).
Comments suppressed due to low confidence (1)

.dockerignore:1

  • [nitpick] Removing .github/workflows from .dockerignore can bloat the build context. Consider re-adding it to keep your image builds lean.
.git

Comment thread infra/release/image/Containerfile Outdated

LABEL maintainer="ThunderAl <community@thunderal.net>" \
org.opencontainers.image.authors="ThunderAl <community@thunderal.net>" \
org.opencontainers.image.title="EF Laraavel release environment" \

Copilot AI Jul 9, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Typo in 'Laraavel'; should be 'Laravel' for consistency and accuracy.

Suggested change
org.opencontainers.image.title="EF Laraavel release environment" \
org.opencontainers.image.title="EF Laravel release environment" \

Copilot uses AI. Check for mistakes.
Comment thread infra/release/image/Containerfile Outdated
# list of all PHP packages to be installed
ARG PHP_PACKAGES="php-cli composer php-intl php-json php-mbstring php-mysqlnd php-opcache php-pdo php-gd php-redis php-xml php-swoole php-zip php-sodium php-bcmath"

# nodels version to be installed

Copilot AI Jul 9, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Typo 'nodels' should be 'NodeJS' or 'Node.js' in the comment.

Suggested change
# nodels version to be installed
# Node.js version to be installed

Copilot uses AI. Check for mistakes.
Comment thread infra/release/image/php.ini Outdated
; 0 means it will check on every request
; 0 is irrelevant if opcache.validate_timestamps=0 which is desirable in production
opcache.revalidate_freq = 0
opcache.validate_timestamps = 1

Copilot AI Jul 9, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment suggests disabling timestamp validation in production (for performance), but this is set to 1. Consider setting opcache.validate_timestamps=0 in production images.

Suggested change
opcache.validate_timestamps = 1
opcache.validate_timestamps = 0

Copilot uses AI. Check for mistakes.
@thunder-al thunder-al merged commit deca635 into main Jul 9, 2025
5 checks passed
@thunder-al thunder-al deleted the infra-update-1751985382434 branch July 9, 2025 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GD Library extension missing in dev env

3 participants