Я обновлял один из наших проектов, который построен и развернут с использованием CodeShip Pro.Мы используем codeship/google-cloud-deployment
docker image для развертывания облачных функций Google.Мне нужны функции, которые доступны только в последней версии SDK gcloud, но кодировщик всегда использует старую версию SDK и, похоже, застрял при извлечении кэшированной версии образа .
кодировщик.services.yml
googlecloudproductiondeployment:
image: codeship/google-cloud-deployment
encrypted_env_file: deploy/deploy-production.env.encrypted
cached: false
volumes:
- ./:/deploy
codeship-steps.yml
- name: Deploy CF to prod
tag: ^deploy-production$
service: googlecloudproductiondeployment
command: /deploy/deploy/google-deploy-cf.sh
deploy / google-deploy-cf.sh
#!/bin/bash
set -e
PROJECT=my-project
FUNCTION_NAME=my-function
SOURCE_REPO=my-repo
# Authenticate on google SDK
codeship_google authenticate
# Re-deploy the CF
gcloud version
gcloud beta functions deploy $FUNCTION_NAME --region europe-west1 --runtime nodejs8 --env-vars-file /deploy/deploy/cf-env.production.yaml --trigger-http --source https://source.developers.google.com/projects/my-project/repos/${PROJECT}/fixed-aliases/${CI_BRANCH} --memory 128MB --entry-point run --timeout 540s
Вывод, наблюдаемый в кодировке:
googlecloudproductiondeployment build/pull started
googlecloudproductiondeployment build/pull finished successfully
googlecloudproductiondeployment Activated service account credentials for: [***@***.iam.gserviceaccount.com]
googlecloudproductiondeployment Google Cloud SDK 204.0.0
googlecloudproductiondeployment alpha 2017.09.15
googlecloudproductiondeployment beta 2017.09.15
googlecloudproductiondeployment bq 2.0.34
googlecloudproductiondeployment core 2018.06.04
googlecloudproductiondeployment gsutil 4.31
googlecloudproductiondeployment kubectl
googlecloudproductiondeployment deployng
googlecloudproductiondeployment ERROR: (gcloud.beta.functions.deploy) unrecognized arguments: 2018-10-08 07:42:29 googlecloudproductiondeployment --runtime (did you mean '--timeout'?)
googlecloudproductiondeployment nodejs8
googlecloudproductiondeployment --env-vars-file
googlecloudproductiondeployment /deploy/deploy/cf-env.production.yaml
Ожидаемый результат:
Я ожидаю увидеть Google Cloud SDK 218.0.0
, версию, отмеченную в последнем коммите в github-репозитории googleub-развертывания для gpsub-хранилища .
Выполнены шаги:
- Добавление
:latest
к изображению в codeship-services.yml
. - Нажатие на
Reset Cache
на странице проекта на CodeShip. - Даже после сброса кэша, я всегда вижу
Image exists, using cached image
в журналах для моей службы googlecloudproductiondeployment
по кодированию.
- Используя джет локально, я могу предвидеть кодированиевытащить последнюю версию, запустив
docker rmi codeship/google-cloud-deployment
перед реактивными шагами.Тем не менее, я не контролирую кэш докера при кодировании.
Кажется, кодирование застряло при использовании старой версии codeship/google-cloud-deployment
образа.На докер-хабе это изображение не имеет никаких тегов, кроме latest
, поэтому я не знаю, как заставить кодхост получить конкретную версию.Пожалуйста, помогите!