Livewire #6

Closed
opened 2025-12-26 03:20:37 +01:00 by myrmidex · 0 comments
myrmidex commented 2025-12-26 03:20:37 +01:00 (Migrated from codeberg.org)

Let's convert our React code to blade + livewire, this will allow for easier production hosting.

Full context:

Your setup

Dockerfile:

FROM dunglas/frankenphp:latest-php8.3-alpine

# Install PHP extensions Laravel needs
RUN install-php-extensions pcntl pdo_mysql opcache

WORKDIR /app

# Copy composer files first for layer caching
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --no-autoloader

# Copy application
COPY . .

# Finish composer install and optimize
RUN composer dump-autoload --optimize
RUN php artisan config:cache \
    && php artisan route:cache \
    && php artisan view:cache

EXPOSE 80

ENTRYPOINT ["php", "artisan", "octane:frankenphp", "--host=0.0.0.0", "--port=80"]

docker-compose.yml (for DockGE):

services:
  app:
    image: registry.yourserver.tld/dishplanner:latest
    ports:
      - "8080:80"
    environment:
      - APP_ENV=production
      - APP_KEY=${APP_KEY}
      - DB_CONNECTION=mysql
      - DB_HOST=db
      - DB_DATABASE=dishplanner
      - DB_USERNAME=dishplanner
      - DB_PASSWORD=${DB_PASSWORD}
    depends_on:
      - db

  db:
    image: mariadb:11
    volumes:
      - dishplanner_db:/var/lib/mysql
    environment:
      - MARIADB_DATABASE=dishplanner
      - MARIADB_USER=dishplanner
      - MARIADB_PASSWORD=${DB_PASSWORD}
      - MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWORD}

volumes:
  dishplanner_db:

Two containers. No nginx. Build locally with docker build -t registry.yourserver.tld/dishplanner:latest ., push, update DockGE stack.

Let's convert our React code to blade + livewire, this will allow for easier production hosting. Full context: ## Your setup **Dockerfile:** ```dockerfile FROM dunglas/frankenphp:latest-php8.3-alpine # Install PHP extensions Laravel needs RUN install-php-extensions pcntl pdo_mysql opcache WORKDIR /app # Copy composer files first for layer caching COPY composer.json composer.lock ./ RUN composer install --no-dev --no-scripts --no-autoloader # Copy application COPY . . # Finish composer install and optimize RUN composer dump-autoload --optimize RUN php artisan config:cache \ && php artisan route:cache \ && php artisan view:cache EXPOSE 80 ENTRYPOINT ["php", "artisan", "octane:frankenphp", "--host=0.0.0.0", "--port=80"] ``` **docker-compose.yml (for DockGE):** ```yaml services: app: image: registry.yourserver.tld/dishplanner:latest ports: - "8080:80" environment: - APP_ENV=production - APP_KEY=${APP_KEY} - DB_CONNECTION=mysql - DB_HOST=db - DB_DATABASE=dishplanner - DB_USERNAME=dishplanner - DB_PASSWORD=${DB_PASSWORD} depends_on: - db db: image: mariadb:11 volumes: - dishplanner_db:/var/lib/mysql environment: - MARIADB_DATABASE=dishplanner - MARIADB_USER=dishplanner - MARIADB_PASSWORD=${DB_PASSWORD} - MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWORD} volumes: dishplanner_db: ``` Two containers. No nginx. Build locally with `docker build -t registry.yourserver.tld/dishplanner:latest .`, push, update DockGE stack.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dish-planner/app#6
No description provided.