Репозиторий: WhatDafox/Vuejs-Cloud-Run-Poc
Настройте Google Cloud.
Чтобы иметь возможность построить и развернуть, вам понадобится проект Google Cloud, с настроенным настроенным аккаунтом счетов, а также Google Cloud Cli установлен.
Тогда вам нужно будет создать конфигурацию для вашего проекта:
$ gcloud config configurations create cloud-run $ gcloud auth login # and follow the steps $ gcloud config set project YOUR_PROJECT_ID
Создать проект
$ npm i -g @vue/cli $ vue create cloud-run
Vue CLI создает тип проекта приложения одной страницы, поэтому мне нужно было установить Подавать
служить проекту после сборки.
Чтобы установить Подавать
, бегать:
$ npm install --save-dev serve
Я должен был обновить package.json
Файл с сценарием «Пуск», как так:
"scripts": { ..., "start": "serve -p $PORT dist/", }
Теперь мы готовы создать Dockerfile
Отказ
Создайте Dockerfile
Теперь мы можем построить приложение и запустить Начать
команда.
# Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-alpine ENV PORT=8080 # Create and change to the app directory. WORKDIR /usr/src/app RUN set -ex && \ adduser node root && \ chmod g+w /app && \ apk add --update --no-cache \ g++ make python \ openjdk8-jre # Copy application dependency manifests to the container image. # A wildcard is used to ensure both package.json AND package-lock.json are copied. # Copying this separately prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. RUN npm ci # Copy local code to the container image. COPY . ./ RUN npm run build # Run the web service on container startup. CMD [ "npm", "run", "start" ]
Build & Deploy
Теперь мы можем использовать Cloud Build для создания нашего образа докера. Облачная сборка автоматически определяет наши Dockerfile
, построить, И подтолкните наше изображение в реестре Google Container:
$ gcloud builds submit --tag gcr.io/YOUR_PROJECT/helloworld
Как только это сделано, мы можем запустить следующую команду для развертывания нашего нового редакции на облачный прогон:
$ gcloud run deploy --image gcr.io/YOUR_PROJECT/helloworld --platform managed
Ориентир
При тестировании я бежал маленький (чтобы избежать сумасшедших расходов) ориентир с тестом Apache.
Вот команда, которую я побежал:
$ ab -n 1000 -c 80 https://cloud-run-url/
Вот результаты:
This is ApacheBench, Version 2.3 <$Revision: 1843412 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking helloworld-2fjcn3qpbq-uw.a.run.app (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Google Server Hostname: helloworld-2fjcn3qpbq-uw.a.run.app Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-CHACHA20-POLY1305,2048,256 Server Temp Key: ECDH X25519 253 bits TLS Server Name: helloworld-2fjcn3qpbq-uw.a.run.app Document Path: / Document Length: 746 bytes Concurrency Level: 80 Time taken for tests: 8.671 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 1272004 bytes HTML transferred: 746000 bytes Requests per second: 115.33 [#/sec] (mean) Time per request: 693.656 [ms] (mean) Time per request: 8.671 [ms] (mean, across all concurrent requests) Transfer rate: 143.26 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 49 391 156.9 370 888 Processing: 32 252 106.9 285 878 Waiting: 28 198 101.0 185 876 Total: 313 643 204.8 620 1398 Percentage of the requests served within a certain time (ms) 50% 620 66% 703 75% 734 80% 790 90% 898 95% 1054 98% 1136 99% 1194 100% 1398 (longest request)
Вывод
Действительно легко развернуть Vuejs на облачный пробег, а выступления не плохие, даже с холодным началом.
Оригинал: «https://dev.to/valentinprgnd/deploy-vue-js-on-google-cloud-run-ddn»