Безусловно, хорошо продуманная демонстрационная среда — ваш золотой билет в сегодняшнюю среду разработки интерфейсов! Используя Docker и GitLab CI, вы можете быстро упаковать и развернуть свои проекты на основе React и Vite. Это оптимизированный подход, который не только улучшает совместную работу команды, но и привлекает клиентов, показывая им функциональные интерактивные демонстрации вместо статичных слайдов. Благодаря скорости и автоматизации вы не просто идете в ногу с быстро меняющимся миром технологий; ты задаешь темп!
Если вас интересует, как создать демо-версию с помощью Mock.js, прочтите эту статью!
Настройки упаковки
Во-первых, нам нужно настроить среду упаковки проекта, чтобы обеспечить правильную работу проекта в контейнере Docker. Ниже приведен пример настройки Dockerfile и package.json:
Докерфайл:
FROM node:16.17.1-slim WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . EXPOSE 8080 CMD ["npm", "run", "dev"]
пакет.json:
"scripts": { "dev": "vite --host --port 8080", "build": "tsc && vite build", },
В Dockerfile мы выбрали Node.js 16.17.1 в качестве базового образа и установили рабочий каталог и команду запуска контейнера по умолчанию. В package.json мы определяем две общие команды сценария для запуска сервера и создания демонстрационного кода.
Настройки CI/CD
Далее мы настроим процесс GitLab CI/CD для автоматической сборки и развертывания. Ниже приведен пример файла конфигурации .gitlab-ci.yml
:
stages: - build-demo - deploy-demo variables: IMAGE_DEMO_TAG: $CI_REGISTRY_IMAGE:demo build-demo: stage: build-demo script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker build -t $IMAGE_DEMO_TAG -f Dockerfile.demo . - docker push $IMAGE_DEMO_TAG only: refs: - develop deploy-demo: stage: deploy-demo image: google/cloud-sdk:437.0.1-alpine variables: GCP_IMAGE_TAG: YOUR_GCP_REPOSITORY/$CI_PROJECT_NAME:demo before_script: - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - apk update && apk add bash - apk update && apk add gettext script: - echo $GCP_CLOUDRUN_SERVICE_KEY > gcp_key.json - gcloud auth activate-service-account --key-file=gcp_key.json - gcloud config set project $GCP_OASIS_PROJECT - gcloud auth configure-docker asia-northeast1-docker.pkg.dev - docker tag $IMAGE_DEMO_TAG $GCP_IMAGE_TAG - docker push $GCP_IMAGE_TAG - envsubst '$GCP_IMAGE_TAG' < service_template.yaml > service.yaml - cat service.yaml - gcloud run services replace ./service.yaml only: refs: - develop
В этом файле конфигурации мы определяем два этапа: build-demo
и deploy-demo
. На этапе build-demo
мы используем Docker для создания образа проекта и отправки его в репозиторий изображений GitLab. На этом этапе deploy-demo
мы используем Google Cloud SDK для развертывания образа в Google Cloud Run.
Обратите внимание, что $GCP_CLOUDRUN_SERVICE_KEY
и $GCP_OASIS_PROJECT
должны быть предварительно определены в GitLab. $GCP_CLOUDRUN_SERVICE_KEY
— это сервисная учетная запись в GCP, для которой вы можете установить минимальные привилегии в настройках IAM и использовать эту учетную запись для развертывания; $GCP_OASIS_PROJECT
— это имя вашего проекта GCP.
$CI_REGISTRY_USER
и $CI_REGISTRY_PASSWORD
— это предопределенные переменные в GitLab CI. Информацию о других предопределенных переменных GitLab можно найти в следующей статье:
Этот процесс автоматически запускается каждый раз, когда код фиксируется в ветке develop
, обеспечивая автоматическую сборку и развертывание.
Настройка облачного запуска
Наконец, нам следует определить файл шаблона для настройки Cloud Run. Вы можете прочитать эту статью с подробными объяснениями настройки Cloud Run.
Заключение
В мире, где «время — деньги», возможность быстро создавать и публиковать демоверсию внешнего интерфейса может стать вашим конкурентным преимуществом. Мы рассмотрели, как контейнеры Docker могут упаковать ваши проекты React и Vite в легко развертываемую форму. Мы также рассмотрели автоматизацию этого процесса с помощью GitLab CI и Google Cloud Run, чтобы ваша команда могла сосредоточиться на том, что у них получается лучше всего: кодировании и инновациях. Инвестируя в сложную демонстрационную среду, вы, по сути, прокладываете путь к ускорению циклов разработки, расширению сотрудничества и, в конечном итоге, к более счастливым клиентам. Это беспроигрышный сценарий, и возможности того, чего вы можете достичь, безграничны. Так зачем ждать? Погрузитесь в суть и используйте мощь этих технологий, чтобы создать идеальную интерфейсную демонстрационную среду! Будущее оптимистично, и оно начинается с вашего следующего обязательства.