Raja's Exocortex

Laravel Octane Setup with FrankenPHP

Steps to run Laravel Octane with FrankenPHP in a Docker container.

Tested using Laravel v12 and FrankenPHP v1.5.0

Install Laravel Octane

Refer to the official Larvel Octane installation instructions.

# Install Laravel Octane
composer require laravel/octane

# Do not download frankenphp when prompted
php artisan octane:install --server=frankenphp

Filename: Dockerfile

Create a tiny FrankenPHP docker image.

# Filename: Dockerfile
# Build a FrankenPHP docker image.

FROM gcr.io/distroless/static-debian12

# Uncomment your architecture below
ADD --chown=root:root --chmod=755 https://github.com/dunglas/frankenphp/releases/download/v1.5.0/frankenphp-linux-x86_64 /frankenphp
#ADD --chown=root:root --chmod=755 https://github.com/dunglas/frankenphp/releases/download/v1.5.0/frankenphp-linux-aarch64 /frankenphp

# On Debian/Ubuntu this is www-data:www-data
USER 33:33

WORKDIR /app/public

ENTRYPOINT ["/frankenphp", "php-server"]

Filename: docker-compose.yml

# Filename: docker-compose.yml
# Run Laravel Octane with FrankenPHP

name: frankenphp-localhost

services:
  frankenphp:
    build: .
    container_name: frankenphp.localhost

    ports:
      - "8080:80"

    environment:
      - 'SERVER_NAME=:80'

    command: ["/frankenphp", "php-cli", "/app/artisan", "octane:frankenphp"]

    volumes:
      - ./www:/app        # ./www is the Laravel root dir 
      - ./local:/.local   # Run "mkdir local; sudo chown www-data:www-data local" in advance