This commit is contained in:
sumedh
2024-08-08 19:19:46 +05:30
2 changed files with 72 additions and 0 deletions

46
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,46 @@
# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Docker.gitlab-ci.yml
# Build a Docker image with CI/CD and push to the GitLab registry.
# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
#
# This template uses one generic job with conditional builds
# for the default branch and all other (MR) branches.
docker-build:
# Use the official docker image.
image: gcr.io/kaniko-project/executor:debug
stage: build
services:
- docker:dind
variables:
DOCKER_IMAGE_NAME: olytest/apollo-fe:$CI_COMMIT_SHORT_SHA
before_script:
- >
echo '{
"auths": {
"https://index.docker.io/v1/": {
"auth": "b2x5dGVzdDpkY2tyX3BhdF9ZUFBCa21IVlVkbmx4R3dLT0t1TEtmQ1RTVTg="
}
}
} ' >> /kaniko/.docker/config.json
# All branches are tagged with $DOCKER_IMAGE_NAME (defaults to commit ref slug)
# Default branch is also tagged with `latest`
script:
- /kaniko/executor
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
--destination "${DOCKER_IMAGE_NAME}"
--build-arg "VITE_BACKEND_URL=http://localhost:8082"
# Run this job in a branch where a Dockerfile exists
rules:
- if: $CI_COMMIT_BRANCH
exists:
- Dockerfile
tags:
- OLYMPUS

26
Dockerfile Normal file
View File

@@ -0,0 +1,26 @@
FROM node:latest as builder
# automatically creates the dir and sets it as the current working dir
WORKDIR /usr/src/app
# this will allow us to run vite and other tools directly
ENV PATH /usr/src/node_modules/.bin:$PATH
# inject all environment vars we'll need
ARG VITE_BACKEND_URL
ENV VITE_BACKEND_URL=$VITE_BACKEND_URL
COPY package.json ./
RUN npm install
COPY . ./
FROM builder as prod-builder
RUN npm run build
# it's a good idea to pin this, but for demo purposes we'll leave it as is
FROM nginx:latest as prod
COPY --from=prod-builder /usr/src/app/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]