From a628eea61ffca289d4f4eb9c13ae762574c3a0fa Mon Sep 17 00:00:00 2001 From: itsAzaria Date: Fri, 20 Feb 2026 13:28:07 +0000 Subject: [PATCH] docker updates for web --- .dockerignore | 21 +++++++++++++ Dockerfile | 45 +++++++++++++++++++++++----- app/Providers/BotServiceProvider.php | 16 +++++----- box.json | 3 +- docker-compose.yml | 15 ++++++++-- scripts/docker-entrypoint.sh | 4 +++ 6 files changed, 85 insertions(+), 19 deletions(-) create mode 100644 .dockerignore create mode 100644 scripts/docker-entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..65568c0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,21 @@ +# Git +.git +.gitignore +.github + +# Local environment and editor files +.env +.env.* +.vscode +.idea + +# Build and runtime artifacts +vendor +builds +.laracord +storage/logs +*.sqlite + +# OS noise +.DS_Store +Thumbs.db diff --git a/Dockerfile b/Dockerfile index 5511856..7253f87 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,15 @@ -FROM composer:2-php8.4 AS builder - +FROM php:8.4-cli AS builder WORKDIR /build + +RUN apt-get update && apt-get install -y \ + --no-install-recommends \ + unzip \ + git \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer + ENV APP_ENV=development COPY composer.json composer.lock* ./ @@ -9,12 +18,34 @@ RUN composer install --no-dev --prefer-dist --no-interaction --optimize-autoload COPY . . RUN php laracord app:build \ && mkdir -p /out \ - && cp builds/laracord /out/laracord + && cp builds/laracord /out/laracord \ + && cp scripts/docker-entrypoint.sh /out/docker-entrypoint.sh FROM php:8.4-cli-alpine AS runtime - WORKDIR /app -COPY --from=builder /out/laracord /app/laracord -RUN chmod +x /app/laracord +RUN apk add --no-cache \ + libpq \ + libzip \ + mysql-client \ + oniguruma \ + && apk add --no-cache --virtual .build-deps \ + autoconf \ + gcc \ + g++ \ + linux-headers \ + make \ + oniguruma-dev \ + openssl-dev \ + postgresql-dev \ + libzip-dev \ + zlib-dev \ + && docker-php-ext-install pdo_pgsql pdo_mysql mbstring sockets zip \ + && apk del .build-deps -CMD ["php", "/app/laracord"] \ No newline at end of file +COPY --from=builder /out/laracord /app/laracord +COPY --from=builder /out/docker-entrypoint.sh /app/docker-entrypoint.sh +RUN chmod +x /app/laracord /app/docker-entrypoint.sh + +EXPOSE 8080 + +CMD ["/app/docker-entrypoint.sh"] \ No newline at end of file diff --git a/app/Providers/BotServiceProvider.php b/app/Providers/BotServiceProvider.php index 8095033..1d1a19b 100644 --- a/app/Providers/BotServiceProvider.php +++ b/app/Providers/BotServiceProvider.php @@ -16,14 +16,14 @@ class BotServiceProvider extends LaracordServiceProvider parent::boot(); if (env('APP_ENV') === 'development') { - \DB::listen(function ($query) { - $sql = $query->sql; - $bindings = json_encode($query->bindings); - $time = $query->time; - $log = '['.date('Y-m-d H:i:s')."] SQL: $sql | Bindings: $bindings | Time: {$time}ms\n"; - $logPath = storage_path('logs/query.log'); - file_put_contents($logPath, $log, FILE_APPEND); - }); + // \DB::listen(function ($query) { + // $sql = $query->sql; + // $bindings = json_encode($query->bindings); + // $time = $query->time; + // $log = '['.date('Y-m-d H:i:s')."] SQL: $sql | Bindings: $bindings | Time: {$time}ms\n"; + // $logPath = storage_path('logs/query.log'); + // file_put_contents($logPath, $log, FILE_APPEND); + // }); } } diff --git a/box.json b/box.json index a7c7568..4b576dc 100644 --- a/box.json +++ b/box.json @@ -4,6 +4,7 @@ "app", "bootstrap", "config", + "resources", "vendor", "database" ], @@ -16,4 +17,4 @@ "KevinGH\\Box\\Compactor\\Php", "KevinGH\\Box\\Compactor\\Json" ] -} +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index cb74264..40b9fa2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,18 @@ services: - mimic: + hermes: build: context: . dockerfile: Dockerfile - container_name: mimic + container_name: hermes restart: unless-stopped volumes: - - ./.env:/app/.env:ro \ No newline at end of file + - ./.env:/app/.env + networks: + - db-network + - web + +networks: + db-network: + external: true + web: + external: true \ No newline at end of file diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100644 index 0000000..80cc636 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -eu + +exec php -d memory_limit=2048M /app/laracord \ No newline at end of file