Пайплайн Gitlab CI проект на ASP.NET Core
Я не могу выполнитьdocker-compose.yml
, который находится в репозитории. В первом job
я вызываю docker-compose-test.yml
, который успешно отрабатывает. Во втором job
я собираю проект и сохраняю результат как артефкаты, затем в третьем job
я создаю Dockerfile и публикую его (я не уверен, что это работает так как я хочу, но сейчас не об этом). В четвёртом job
я пытаюсь запустить мой docker-compose.yml
, но отображается ошибка о том, что файл не найден.
Ещё примечательно то, что во время выполнения интеграционных тестов в папке builds/username/name-project
находятся исходники проекта, включая docker-compose
. Но на последнем job
эта папка уже абсолютно пустая.
Мой .gitlab-ci
integrationstests:
stage: test
image: docker:24.0.5
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
services:
- docker:24.0.5-dind
script:
- apk update
- apk add docker docker-compose
- docker-compose -f docker-compose-tests.yml up --abort-on-container-exit --exit-code-from integrationtests
build:
stage: build
image: mcr.microsoft.com/dotnet/sdk:8.0
script:
- dotnet restore Web/Web.csproj
- dotnet build Web/Web.csproj -c Release --no-restore
- dotnet publish Web/Web.csproj -c Release --no-build --output ./app
artifacts:
expire_in: 1 hour
paths:
- ./app/
publish:
stage: publish
image: docker:24.0.5
services:
- docker:24.0.5-dind
variables:
GIT_STRATEGY: none
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- |
echo -e '
FROM mcr.microsoft.com/dotnet/sdk:8.0
WORKDIR /app
COPY ./app .
ENTRYPOINT ["dotnet", "Web.dll"]
' > Dockerfile
script:
- docker build --pull -f Dockerfile -t $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH
dependencies:
- build
needs:
- build
deploy:
stage: deploy
image: docker:24.0.5
services:
- docker:24.0.5-dind
variables:
GIT_STRATEGY: none
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
- apk update
- apk add docker docker-compose
- docker-compose -f docker-compose.yml up
dependencies:
- publish
needs:
- publish