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