runner
Проект собирается в два этапа :
1) сборка артефакта в базовом образе
project: {{ env "CI_PROJECT_NAME" }}
configVersion: 1
---
image: go-build
from: {{ $base_image }}
mount:
- from: build_dir
to: /go/pkg/mod
git:
- add: /
to: /app
excludePaths:
- '.helm'
- 'werf.yaml'
- 'werf-giterminism.yaml'
- '.gitlab-ci.yml'
- 'README.md'
stageDependencies:
install:
- "*"
shell:
install:
- go build -o project
2) импорт артефакта в рантайм образ
image: {{ env "CI_PROJECT_NAME" }}
from: {{ $run_image }}
docker:
WORKDIR: /app
USER: root
ENTRYPOINT: ["/app/project"]
CMD: ["service", "start"]
shell:
import:
- image: go-build
add: /app/project
to: /app/project
after: install
в манифесте деплое версия коммита меняется, а сам образ старый остаётся. Изменения точно вносились в файлы, которые werf должен был проверить при сборке. При дебаге
"Images": {
2m9.30580719 │ "payments": {
"Rebuilt": false },
"go-build": {
"Rebuilt": true,
То есть в сборщике образ пересобрался, а рантайм образ брался с кэша.
Временно вышел из положения:
- add: /app/project
- to: /app/project
+ add: /app
+ to: /app
неужели хэш собранного бинарника совпадал?
У меня так полторы сотни проектов собирается , проблем не было 🧐
Стикер
https://t.me/werf_ru/23240 Проверьте чексумму файла в образе, из которого происходит импорт. Похоже на то, что бинарник не меняется между сборками.
There is now support for more beautiful code blocks with syntax highlighting, copying of the entire block with code by clicking on its title and the ability to specify the programming language for a block of code using ```language syntax.
Обсуждают сегодня