All In
This commit is contained in:
parent
cf3bb6e470
commit
4c8a47210e
36
.gitlab-ci.yml
Normal file
36
.gitlab-ci.yml
Normal file
@ -0,0 +1,36 @@
|
||||
stages:
|
||||
- build
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
IMAGE_NAME: pratama-test
|
||||
IMAGE_TAG: v1.0.0
|
||||
CONTAINER_NAME: pratama-test
|
||||
DOCKER_REGISTRY: registry.mango.local
|
||||
DOCKER_IMAGE_FULL_PATH: $DOCKER_REGISTRY/pratama/$IMAGE_NAME:$IMAGE_TAG
|
||||
DOCKER_DRIVER: overlay2
|
||||
|
||||
build:
|
||||
stage: build
|
||||
image: docker:latest
|
||||
tags:
|
||||
- docker
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
# - docker login -u $DOCKER_REGISTRY_USER -p $DOCKER_REGISTRY_PASSWORD $DOCKER_REGISTRY
|
||||
- docker build -t $IMAGE_NAME:$IMAGE_TAG .
|
||||
- docker tag $IMAGE_NAME:$IMAGE_TAG $DOCKER_IMAGE_FULL_PATH
|
||||
- docker push $DOCKER_IMAGE_FULL_PATH
|
||||
|
||||
deploy:
|
||||
stage: deploy
|
||||
image: docker:latest
|
||||
tags:
|
||||
- docker
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- docker compose down || true
|
||||
- docker compose build
|
||||
- docker compose up -d --build
|
||||
34
Dockerfile
Normal file
34
Dockerfile
Normal file
@ -0,0 +1,34 @@
|
||||
FROM dunglas/frankenphp:1.1-php8.2
|
||||
|
||||
ENV SERVER_NAME=:80
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Install extension yang dibutuhkan Laravel
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
unzip \
|
||||
zip \
|
||||
curl \
|
||||
libzip-dev \
|
||||
libpng-dev \
|
||||
libjpeg-dev \
|
||||
libfreetype6-dev \
|
||||
pkg-config \
|
||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||
&& docker-php-ext-install zip pdo pdo_mysql gd bcmath \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Install composer
|
||||
RUN curl -sS https://getcomposer.org/installer | php && \
|
||||
mv composer.phar /usr/local/bin/composer
|
||||
|
||||
COPY . /app
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
22
docker-compose.yml
Normal file
22
docker-compose.yml
Normal file
@ -0,0 +1,22 @@
|
||||
services:
|
||||
app:
|
||||
container_name: test
|
||||
image: ${DOCKER_REGISTRY}/pratama/${IMAGE_NAME}:${IMAGE_TAG}
|
||||
# build: .
|
||||
ports:
|
||||
- "8991:80"
|
||||
env_file:
|
||||
- slack.env
|
||||
networks:
|
||||
- gitlab-repo
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "--fail", "http://localhost/"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 5s
|
||||
|
||||
networks:
|
||||
gitlab-repo:
|
||||
external: true
|
||||
68
entrypoint.sh
Normal file
68
entrypoint.sh
Normal file
@ -0,0 +1,68 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd /app
|
||||
|
||||
# Install dependency jika belum ada vendor/
|
||||
if [ ! -d vendor ]; then
|
||||
echo "Installing dependencies..."
|
||||
composer install --no-interaction --prefer-dist --optimize-autoloader
|
||||
fi
|
||||
|
||||
# Jika file .env tidak ada, copy dari slack.env
|
||||
if [ ! -f .env ]; then
|
||||
echo "Copying slack.env to .env"
|
||||
cp slack.env .env
|
||||
fi
|
||||
|
||||
# Generate app key jika belum ada
|
||||
if ! grep -q "APP_KEY=" .env || [ -z "$(php artisan key:generate --show 2>/dev/null)" ]; then
|
||||
echo "Generating app key..."
|
||||
php artisan key:generate
|
||||
fi
|
||||
# echo "Generating app key..."
|
||||
# php artisan key:generate
|
||||
|
||||
# Cek apakah database sudah terhubung
|
||||
if ! php artisan migrate:status > /dev/null 2>&1; then
|
||||
echo "Database connection failed. Please check your .env file."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cek apakah optimize sudah bersih
|
||||
if ! php artisan optimize:clear > /dev/null 2>&1; then
|
||||
echo "Clearing optimize..."
|
||||
php artisan optimize:clear || {
|
||||
echo "Optimize clear failed. Please check your Laravel setup."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
# Cek apakah config sudah bersih
|
||||
# if ! php artisan config:clear > /dev/null 2>&1; then
|
||||
# echo "Clearing config cache..."
|
||||
# php artisan config:clear || {
|
||||
# echo "Config clear failed. Please check your Laravel setup."
|
||||
# exit 1
|
||||
# }
|
||||
# fi
|
||||
|
||||
# Cek apakah route sudah bersih
|
||||
# if ! php artisan route:clear > /dev/null 2>&1; then
|
||||
# echo "Clearing route cache..."
|
||||
# php artisan route:clear || {
|
||||
# echo "Route clear failed. Please check your Laravel setup."
|
||||
# exit 1
|
||||
# }
|
||||
# fi
|
||||
|
||||
# Jalankan migrasi
|
||||
echo "Running migrations..."
|
||||
#php artisan migrate --force || true
|
||||
php artisan migrate:fresh --seed --force || true
|
||||
|
||||
echo "Seeding database..."
|
||||
php artisan db:seed --force || true
|
||||
|
||||
# Start server
|
||||
echo "Starting Laravel server..."
|
||||
exec frankenphp php-server --root public
|
||||
69
slack.env
Normal file
69
slack.env
Normal file
@ -0,0 +1,69 @@
|
||||
APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_KEY=base64:PfCPtSPUU+C+slwgUm0TeUzy4sOcDslf0QEYtMt56bs=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
|
||||
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
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=10.10.30.253
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=simedkom
|
||||
DB_USERNAME=simedkom
|
||||
DB_PASSWORD=l2d7YsJm1EdWT4GvDk6B1URpLAm0Bu9h
|
||||
|
||||
SESSION_DRIVER=database
|
||||
SESSION_LIFETIME=120
|
||||
SESSION_ENCRYPT=false
|
||||
SESSION_PATH=/
|
||||
SESSION_DOMAIN=null
|
||||
|
||||
BROADCAST_CONNECTION=log
|
||||
FILESYSTEM_DISK=local
|
||||
QUEUE_CONNECTION=database
|
||||
|
||||
CACHE_STORE=database
|
||||
# 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=log
|
||||
MAIL_SCHEME=null
|
||||
MAIL_HOST=127.0.0.1
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_FROM_ADDRESS="hello@example.com"
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
|
||||
S3_ACCESS_KEY=GCLSD4PCBWV9JJ09X6KB
|
||||
S3_SECRET_KEY=+ABULfHK6uJ2nUQnymfQtxyssrZmCpGp6uSz7o3b
|
||||
S3_REGION=pratama-live
|
||||
S3_BUCKET_NAME=purwakarta-diskominfo-simedkom
|
||||
S3_ENDPOINT_URL=http://s3.pratama.live
|
||||
AWS_USE_PATH_STYLE_ENDPOINT=true
|
||||
|
||||
VITE_APP_NAME="${APP_NAME}"
|
||||
|
||||
RECAPTCHA_SITE_KEY=6Lcy9uEoAAAAALWxQu-0kuS_YAjGpDVpdk1FxPL8
|
||||
RECAPTCHA_SECRET_KEY=6Lcy9uEoAAAAAIc54Fi8fPEbbJ9kYi9odkmUfdNy
|
||||
Loading…
Reference in New Issue
Block a user