try to implement the global containerization

This commit is contained in:
Giovanni committed 2026-10-03 18:42:21 +02:00
1 parent e2b471312c
commit ed38086d09
24 files changed
+966

No files matched your search

+81
View File
@@ -0,0 +1,81 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8000
CORS_PATHS=api/*,sanctum/csrf-cookie,broadcasting/auth
DEV_CORS_ALLOWED_ORIGINS=http://localhost:5173
PROD_CORS_ALLOWED_ORIGINS=http://localhost
SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,localhost:8000,localhost:5173
ADMIN_NAME=
ADMIN_LASTNAME=
ADMIN_MAIL=
ADMIN_PASSWORD=
ADMIN_PHONE_NUMBER=
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=localhost
SESSION_SECURE_COOKIE=false
BROADCAST_CONNECTION=reverb
REVERB_APP_ID=local
REVERB_APP_KEY=local
REVERB_APP_SECRET=local
REVERB_HOST=reverb
REVERB_PORT=8080
REVERB_SCHEME=http
PUSHER_APP_CLUSTER="mt1"
CACHE_STORE=file
QUEUE_CONNECTION=sync
FILESYSTEM_DISK=local
# CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_SCHEME=null
MAIL_HOST=host.docker.internal
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
VITE_APP_NAME="${APP_NAME}"
TYPESENSE_CONNECTION=typesense
TYPESENSE_API_KEY=
+27
View File
@@ -0,0 +1,27 @@
FROM php:8.4-fpm
ARG USER_ID=1000
ARG GROUP_ID=1000
RUN apt-get update && apt-get install -y \
git unzip libzip-dev libpng-dev libonig-dev gosu \
&& apt-get install -y netcat-openbsd \
&& docker-php-ext-install pdo_mysql zip pcntl
RUN if [ ${USER_ID:-0} -ne 0 ] && [ ${GROUP_ID:-0} -ne 0 ]; then \
groupmod -g ${GROUP_ID} www-data && \
usermod -u ${USER_ID} -g ${GROUP_ID} www-data \
;fi
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY scripts/*.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/*.sh
WORKDIR /var/www/app
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
set -e
. /usr/local/bin/context.sh
. /usr/local/bin/setup_git.sh
. /usr/local/bin/setup_composer.sh
. /usr/local/bin/setup_env.sh
. /usr/local/bin/setup_laravel.sh
echo "[INIT] Starting initialization..."
setup_git
setup_composer
setup_env
/usr/local/bin/wait-mariadb.sh
/usr/local/bin/wait-typesense.sh
setup_laravel
echo "[INIT] Done ✅"
exec "$@"
+12
View File
@@ -0,0 +1,12 @@
#!/bin/sh
APP_DIR=/var/www/app
IS_DEV=${DEV:-0}
run() {
if [ "$IS_DEV" = 1 ]; then
gosu www-data "$@"
else
"$@"
fi
}
+12
View File
@@ -0,0 +1,12 @@
#!/bin/sh
setup_composer() {
echo "Installing dependencies..."
mkdir -p /var/www/.composer/cache
chown -R www-data:www-data /var/www/.composer
if [ -f composer.json ]; then
run composer install --no-interaction --prefer-dist
fi
}
+21
View File
@@ -0,0 +1,21 @@
#!/bin/sh
setup_env() {
echo "Configuring environment..."
cp /tmp/app.env .env
/usr/local/bin/wait-typesense.sh
TYPESENSE_API_KEY=$(cat /typesense-data/api-key)
sed -i "s/^TYPESENSE_API_KEY=.*/TYPESENSE_API_KEY=$TYPESENSE_API_KEY/" .env
echo "DEV=$DEV" >> .env
if [ "$IS_DEV" = 1 ]; then
chown www-data:www-data .env
chmod 664 .env
else
chown www-data:www-data .env
chmod 640 .env
fi
}
+36
View File
@@ -0,0 +1,36 @@
#!/bin/sh
setup_git() {
echo "Setting up Git..."
GIT_URL="https://oauth2:${GIT_TOKEN}@${BACKEND_GIT_REPO}"
BRANCH="${BACKEND_GIT_BRANCH:-main}"
FORCE_CLONE="${FORCE_CLONE:-false}"
git config --global --add safe.directory "$APP_DIR"
if [ ! -d "$APP_DIR/.git" ]; then
echo "Cloning repo..."
git clone -b "$BRANCH" "$GIT_URL" "$APP_DIR"
else
echo "Updating repo..."
cd "$APP_DIR"
CURRENT_BRANCH=$(run git rev-parse --abbrev-ref HEAD)
if [ "$CURRENT_BRANCH" = "$BRANCH" ]; then
run git fetch origin
run git reset --hard origin/"$CURRENT_BRANCH"
else
if [ "$FORCE_CLONE" = "true" ]; then
rm -rf "$APP_DIR"
mkdir -p "$APP_DIR"
git clone -b "$BRANCH" "$GIT_URL" "$APP_DIR"
else
run git fetch origin
run git reset --hard origin/"$BRANCH"
fi
fi
fi
cd "$APP_DIR"
}
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
setup_laravel() {
echo "Setting up Laravel..."
run php artisan key:generate --force
run php artisan config:clear
run php artisan cache:clear
run php artisan migrate --force --seed
if [ "$IS_DEV" = 1 ]; then
chmod -R 775 storage bootstrap/cache
chmod -R 755 public
else
chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache
fi
run php artisan storage:link
}
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
until nc -z mariadb 3306; do
sleep 2
done
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
while [ ! -f /typesense-data/api-key ]; do
sleep 1
done