This commit is contained in:
reihanrere 2025-05-28 15:56:06 +07:00
commit ee84781f3a
4 changed files with 152 additions and 9 deletions

64
.drone.yml Normal file
View File

@ -0,0 +1,64 @@
kind: pipeline
type: docker
name: siska-pipeline
platform:
os: linux
arch: arm64
steps:
- name: build-image-dev
image: docker:24.0.7-dind
environment:
DOCKER_BUILDKIT: "1"
REGISTRY_USERNAME:
from_secret: registry_username
REGISTRY_PASSWORD:
from_secret: registry_password
volumes:
- name: dockersock
path: /var/run/docker.sock
commands:
- apk add --no-cache curl bash
- echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USERNAME" --password-stdin registry.git.appstaging.my.id
- docker buildx create --use --name mybuilder || true
- docker buildx build --platform linux/arm64 -t registry.git.appstaging.my.id/reihanrere/sistem-akademik/sistem-akademik-dev -f Dockerfile . --push
- name: deploy-image-dev
image: debian:latest
environment:
SSH_KEY_M4:
from_secret: ssh_key_m4
REGISTRY_USERNAME:
from_secret: registry_username
REGISTRY_PASSWORD:
from_secret: registry_password
commands:
- apt-get update -qq && apt-get install -qq git openssh-client
- mkdir -p ~/.ssh
- echo "$SSH_KEY_M4" | base64 -d > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- |
cat <<EOF > ~/.ssh/config
Host *
StrictHostKeyChecking no
EOF
- chmod 600 ~/.ssh/config
- |
ssh -i ~/.ssh/id_rsa opc@138.2.102.242 <<EOF
docker login -u $REGISTRY_USERNAME -p $REGISTRY_PASSWORD registry.git.appstaging.my.id
cd /home/opc/workspace/sistem-akademik
docker-compose rm --stop --force sistem-akademik-dev
docker image prune --all --force
docker pull registry.git.appstaging.my.id/reihanrere/sistem-akademik/sistem-akademik-dev
docker-compose up -d --build sistem-akademik-dev
EOF
volumes:
- name: dockersock
host:
path: /var/run/docker.sock
trigger:
branch:
- main

View File

@ -1,9 +1,9 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_ENV=Prod
APP_KEY=base64:Wz4daUZXYysRm1vUWBWTjQ5v0JFWBsQ2wPw2tHRALgY=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=http://localhost
APP_URL=https://siska.appstaging.my.id
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
@ -21,12 +21,12 @@ LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
DB_CONNECTION=pgsql
DB_HOST=appstaging.my.id
DB_PORT=5432
DB_DATABASE=SISKA_2025
DB_USERNAME=root
DB_PASSWORD=postroot123
SESSION_DRIVER=database
SESSION_LIFETIME=120

34
Dockerfile Normal file
View File

@ -0,0 +1,34 @@
FROM php:8.1-fpm
# Install dependencies
RUN apt-get update && apt-get install -y \
libpq-dev \
zip unzip curl git \
&& docker-php-ext-install pdo_pgsql
# Install Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Set working directory
WORKDIR /var/www
# Copy source
COPY . .
# Copy default env
COPY .env.example .env
# Install Laravel dependencies
RUN composer install --no-interaction --prefer-dist --optimize-autoloader
# Generate Laravel app key
RUN php artisan key:generate
# Set permissions for Laravel
RUN chown -R www-data:www-data /var/www \
&& chmod -R 755 /var/www \
&& chmod -R 775 storage bootstrap/cache \
&& chown -R www-data:www-data storage bootstrap/cache
EXPOSE 9000
CMD ["php-fpm"]

45
docker-compose.yml Normal file
View File

@ -0,0 +1,45 @@
version: "3"
services:
sistem-akademik-dev:
image: registry.git.appstaging.my.id/reihanrere/sistem-akademik/sistem-akademik-dev
container_name: sistem-akademik-dev
labels:
- "traefik.enable=true"
- "traefik.http.routers.sistem-akademik-dev-http.entrypoints=web"
- "traefik.http.routers.sistem-akademik-dev-http.rule=Host(`siska.appstaging.my.id`)"
- "traefik.http.routers.sistem-akademik-dev-http.middlewares=redirect-to-https"
- "traefik.http.routers.sistem-akademik-dev.entrypoints=websecure"
- "traefik.http.routers.sistem-akademik-dev.tls.certresolver=myresolver"
- "traefik.http.routers.sistem-akademik-dev.rule=Host(`siska.appstaging.my.id`)"
- "traefik.http.routers.sistem-akademik-dev.tls=true"
volumes:
- .:/var/www
- ./storage:/var/www/storage
working_dir: /var/www
restart: always
networks:
- traefik_default
environment:
APP_ENV: production
APP_DEBUG: false
APP_KEY: base64:Wz4daUZXYysRm1vUWBWTjQ5v0JFWBsQ2wPw2tHRALgY=
DB_CONNECTION: pgsql
DB_HOST: appstaging.my.id
DB_PORT: 5432
DB_DATABASE: SISKA_2025
DB_USERNAME: root
DB_PASSWORD: postroot123
command: >
sh -c "
composer install --no-interaction --prefer-dist &&
php artisan config:cache &&
php artisan route:cache &&
php artisan view:cache &&
php artisan migrate --force &&
php-fpm
"
networks:
traefik_default:
external: true