diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..27a8663 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,34 @@ +stages: + - build + - deploy + +variables: + IMAGE_NAME: purwakarta-diskominfo-simedkom-new + IMAGE_TAG: v1.0.0 + CONTAINER_NAME: purwakarta-diskominfo-simedkom-new + +build: + stage: build + image: docker:latest + services: + - docker:dind + tags: + - docker + script: + - docker info + - docker build -t $IMAGE_NAME:$IMAGE_TAG . + +deploy: + stage: deploy + image: docker:latest + services: + - docker:dind + tags: + - docker + before_script: + - echo -e "$ENV_FILE" > .env + script: + - docker compose down || true + - docker compose up -d --build + only: + - main diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..04f68f0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM dunglas/frankenphp:latest + +ENV SERVER_NAME=":80" + +WORKDIR /app + +# Copy project ke dalam container +COPY . /app + +RUN apt-get update && apt-get install -y \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + libzip-dev \ + libicu-dev \ + pkg-config \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install gd \ + && docker-php-ext-install pdo pdo_mysql zip bcmath intl \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +COPY composer.json composer.lock ./ +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +RUN composer install --no-dev --optimize-autoloader && \ + composer clear-cache + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7fb86c2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +services: + app: + build: + context: . + image: purwakarta-diskominfo-simedkom-new:v1.0.0 + # command: > + # sh -c "echo 'max_execution_time=300' > /usr/local/etc/php/conf.d/custom.ini && php artisan storage:link && pap artisan optimize:clear && php-fpm" + + container_name: purwakarta-diskominfo-simedkom-new + ports: + - "8103:80" + env_file: + - .env + networks: + - gitlab-repo + +networks: + gitlab-repo: + external: true