diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..43dd7cc --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,34 @@ +stages: + - build + - deploy + +variables: + IMAGE_NAME: purwakarta-diskominfo-simedkom + IMAGE_TAG: v1.0.0 + CONTAINER_NAME: purwakarta-diskominfo-simedkom + +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-copose.yml b/docker-copose.yml new file mode 100644 index 0000000..ca7a65b --- /dev/null +++ b/docker-copose.yml @@ -0,0 +1,16 @@ +services: + app: + build: + context: . + image: purwakarta-diskominfo-simedkom:v1.0.0 + container_name: purwakarta-diskominfo-simedkom + ports: + - "8992:80" + env_file: + - .env + networks: + - gitlab-repo + +networks: + gitlab-repo: + external: true