Вопросы

кеширование модулей go в сборке кода без пользовательского образа докера

TL;DR

Как я могу кэшировать свои модули в кодовой сборке с помощью образа, предоставленного AWS (Go 1.12)?

Фон

Я пытаюсь кэшировать модули go в сборке кода, используя образ go (1.12) от AWS.

Пробуем кешировать / go / pkg / mod

Покопавшись глубже, я обнаружил, что в этом образе нет папки /go/pkg. Следовательно, когда я пытался кэшировать /go/pkg, это вызывало ошибку.

Ошибка монтирования / go / pkg / mod: символическая ссылка / codebuild / local-cache / custom // go / pkg / mod / go / pkg / mod: нет такого файла или каталога

Даже после того, как я запустил go mod download (который создаст /go/pkg/mod, он не будет кэшировать папку, потому что сборка кода не может смонтировать ее раньше).

Это мой codebuild.yml

version: 0.2

phases:
  install:
    runtime-versions:
      golang: 1.12
      nodejs: 10
    commands:
      - npm install
  build:
    commands:
      - go build -ldflags="-s -w" -o api/bin/main api/main.go
cache:
  paths:
    - /go/src/**/*
    - /go/pkg/mod/**/*

Пытаюсь кешировать ./vendor

Я также пробовал кешировать папку ./vendor, которая не вызывает ошибок при сборке кода. Однако я не думаю, что он что-то кеширует, потому что время сборки не уменьшается. Он также говорит, что игнорирует символическую ссылку.

предупреждение: игнорирование символической ссылки /codebuild/output/src074479210/src/github.com/kkesley/myrepo/vendor go: поиск github.com/aws/aws-lambda-go v1.11.1 go: поиск github.com/stretchr/testify v1 .2.1 go: поиск github.com/pmezard/go-difflib v1.0.0 go: поиск github.com/davecgh/go-spew v1.1.0 go: поиск gopkg.in/urfave/cli.v1 v1.20.0 go: загрузка github.com/aws/aws-lambda-go v1.11.1 go: извлечение github.com/aws/aws-lambda-go v1.11.1

Это мой codebuild.yml для этой версии:

version: 0.2

phases:
  install:
    runtime-versions:
      golang: 1.12
      nodejs: 10
    commands:
      - npm install
      - go mod vendor
  build:
    commands:
      - go build -mod vendor -ldflags="-s -w" -o api/bin/main api/main.go
cache:
  paths:
    - /go/src/**/*
    - vendor/**/*

Вопрос

Как кэшировать модули Go при сборке кода без использования пользовательского образа докера? Является ли это возможным?

Читать:
Преобразование шестнадцатеричной строки в base64 в Julia

Вы в этом разобрались? Я пытаюсь сделать то же самое …   —  person kkesley    schedule 02.05.2020

@JoelDuckworth, извини, я так и не понял.   —  person kkesley    schedule 02.05.2020

Похожие записи

Тесты Cypress E2E не работают в режиме CI на gitlab.com

admin

Дождитесь Cloud Firestore перед рендерингом

admin

Клонирование GitLab не выполнено

admin

aws-secretsmanager-caching-python :: Используется ли кеш для разных контейнеров докеров, работающих на одном экземпляре EC2?

admin

Как запустить анимацию CSS только после полной загрузки страницы?

admin

Почему моя игра pygame теряет кадры при отображении прямоугольников?

admin