From c423d088d915bea0f06093c57d6f91ac4a5b00c7 Mon Sep 17 00:00:00 2001 From: ExtraNetwork Date: Wed, 13 May 2026 11:58:49 +0300 Subject: [PATCH] update droneyml --- .drone.yml | 119 ++++++++++------------------------------------------- .gitignore | 2 + Dockerfile | 29 ++++++++++--- 3 files changed, 48 insertions(+), 102 deletions(-) diff --git a/.drone.yml b/.drone.yml index 6f5cf26..ddf3211 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,99 +1,24 @@ -kind: pipeline -type: docker -name: api-extranetwork - -# Sadece main branch'te tetiklenir -trigger: - branch: - - main - event: - - push - -steps: - # ------------------------------------------------------- - # 1. Bağımlılıkları kur - # ------------------------------------------------------- - - name: composer-install - image: composer:2.2 +services: + app: + build: + context: . + dockerfile: Dockerfile + container_name: extranetwork_api_app + restart: unless-stopped + working_dir: /var/www/html + env_file: + - .env volumes: - - name: composer-cache - path: /root/.composer/cache - commands: - - composer config platform.php 7.4.0 - - composer install --optimize-autoloader --no-interaction --prefer-dist --ignore-platform-req=ext-gd + - .:/var/www/html + - /opt/docker/storage/api.extranetwork.com/uploads:/home/uploads + ports: + - "127.0.0.1:8073:80" + networks: + - backend + - proxy - # ------------------------------------------------------- - # 2. PHP Unit testlerini çalıştır - # ------------------------------------------------------- - - name: tests - image: php:7.4-cli - commands: - - apt-get update -qq - - apt-get install -y --no-install-recommends libzip-dev libpng-dev libxml2-dev libonig-dev > /dev/null 2>&1 - - docker-php-ext-install pdo pdo_mysql zip mbstring > /dev/null 2>&1 - - cp .env.example .env - - APP_KEY=$(php -r "echo 'base64:'.base64_encode(random_bytes(32));") && sed -i "s|APP_KEY=.*|APP_KEY=${APP_KEY}|" .env - - mkdir -p storage/framework/views storage/framework/cache storage/framework/sessions storage/logs - - vendor/bin/phpunit --no-coverage --stop-on-failure - environment: - DB_CONNECTION: sqlite - DB_DATABASE: ":memory:" - depends_on: - - composer-install - - # ------------------------------------------------------- - # 3. Docker image build & Gitea Container Registry'e push - # ------------------------------------------------------- - - name: docker-build-push - image: plugins/docker - settings: - registry: git.extranetwork.net - repo: git.extranetwork.net/gitea/api-extranetwork - username: gitea - password: 9359f6c8267582bf6c8197d62a6374150c63cc6a - tags: - - latest - - ${DRONE_COMMIT_SHA:0:8} - insecure: true - depends_on: - - tests - when: - branch: - - main - event: - - push - - # ------------------------------------------------------- - # 4. SSH ile sunucuya deploy et - # ------------------------------------------------------- - - name: deploy - image: appleboy/drone-ssh - settings: - host: 178.105.136.25 - username: deploy - key: - from_secret: DEPLOY_SSH_KEY - port: 22 - script: - - cd /opt/api.extranetwork.com - - docker compose pull - - docker compose up -d --remove-orphans - - docker compose exec -T app php artisan migrate --force - - docker compose exec -T app php artisan config:cache - - docker compose exec -T app php artisan route:cache - - docker compose exec -T app php artisan view:cache - - echo "Deploy tamamlandı - $(date)" - depends_on: - - docker-build-push - when: - branch: - - main - event: - - push - -# ------------------------------------------------------- -# Uçucu volume (composer cache pipeline içinde paylaşılır) -# ------------------------------------------------------- -volumes: - - name: composer-cache - temp: {} +networks: + backend: + external: true + proxy: + external: true diff --git a/.gitignore b/.gitignore index 1eeeaaf..c4a19cf 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ Homestead.json Homestead.yaml .env composer.lock +/Dockerfile +/docker-compose.yml # Büyük SQL dosyaları *.sql diff --git a/Dockerfile b/Dockerfile index f96052e..6933290 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,11 +43,30 @@ RUN a2enmod rewrite # Apache VirtualHost ayarı COPY vhost.conf /etc/apache2/sites-available/000-default.conf -# Upload klasörü -RUN mkdir -p /home/uploads \ - && chown -R www-data:www-data /home/uploads \ - && chmod -R 775 /home/uploads - WORKDIR /var/www/html +# Laravel/Lumen gerekli klasörleri +RUN mkdir -p \ + /var/www/html/storage/logs \ + /var/www/html/storage/framework/cache \ + /var/www/html/storage/framework/sessions \ + /var/www/html/storage/framework/views \ + /var/www/html/bootstrap/cache \ + /home/uploads \ + && chown -R www-data:www-data \ + /var/www/html/storage \ + /var/www/html/bootstrap/cache \ + /home/uploads \ + && chmod -R 775 \ + /var/www/html/storage \ + /var/www/html/bootstrap/cache \ + /home/uploads + +# Runtime permission düzeltme scripti +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh + +RUN chmod +x /usr/local/bin/docker-entrypoint.sh + +ENTRYPOINT ["docker-entrypoint.sh"] + CMD ["apache2-foreground"]