gitlab CI + Docker +. NET Core, я не понимаю, почему установлена ​​только более старая версия. net - PullRequest
1 голос
/ 05 января 2020

У меня есть файл CI gitlab, который создает проекты, подобные этому:

image: 'docker/compose:1.25.1-rc1'
services:
    - 'docker:dind'
variables:
    GIT_SUBMODULE_STRATEGY: recursive

    stages:
        - build
        - deploy

    buildCode:
        stage: build
        except:
          - deploy
        script:
            - docker build -t dataserver -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest -f dockerfile .

    deployCode:
        stage: deploy
        only:
          - deploy
        script:
            - docker build -t dataserver -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest -f dockerfile .
            - docker login registry.gitlab.com -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
            - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest        
            - docker network create network && echo 'creating network'
            - docker-compose -f docker-compose.yml pull
            - docker-compose -f docker-compose.yml rm -f -s
            - docker-compose -f docker-compose.yml up -d

Идея состоит в том, чтобы использовать docker / compose: 1.25.1-rc1 для создания среды docker comppose и сборки файлы.

Файл docker сам вызывает этот образ для сборки

ОТ mcr.microsoft.com/dotnet/core/sdk:3.1 как сборка

, а затем использует этот образ для выполнения:

ОТ mcr.microsoft.com/dotnet/core/aspnet:3.1 как окончательный

так. net 3.1 должен быть установлен.

однако, когда я запускаю приложение, я получаю это:

enter image description here

(Я не могу сделать захват текста, так что это скриншот)

Это означает, что. net 3.1 не установлен, и я не могу понять проблему. Если я скомпилирую приложение для 3.0 с той же настройкой CI, оно запустится.

1 Ответ

0 голосов
/ 05 января 2020

Попробуйте принудительно docker извлекать изображения из изображений, прежде чем создавать свои.

Кажется, что вы pnet: 3.1 Только что у вас была версия 3.1.0 для предварительного просмотра, когда вы ее вытягивали.

Тег 3.1 всегда нацелен на последнюю версию 3.1.xxx.

До релиза был предварительный просмотр .. сейчас 3.1.1 ... в будущем будет 3.1.x.

Если Вы уже вытащили изображение с тегом 3.1, ваша сборка будет использовать встреченное изображение. И это может быть не текущий 3.1 в удаленном хранилище. Если вы потянете его, то ha sh будет проверен и обновит изображение.

...