J'essaie de créer un conteneur Windows à l'aide de https://gitlab.com, mais je n'ai pas trouvé si cela est pris en charge ou non .

J'ai fait un test avec un Dockerfile vraiment simple:

FROM mcr.microsoft.com/windows/servercore:ltsc2019
CMD echo "Hello World from Windows"

Utilisation de .gitlab-ci.yml

image: docker
services:
- docker:dind

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_DRIVER: overlay2

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

windows:
  stage: build
  script:
  - docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG} . 
  - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG}

Il échoue avec:

Le système d'exploitation d'image "windows" ne peut pas être utilisé sur cette plate-forme
ERREUR: échec de la tâche: code de sortie 1

En cherchant la documentation de gitlab-runner, il semble pris en charge https: // docs .gitlab.com / runner / executors / # selection-the-executor.

Existe-t-il un moyen de créer un conteneur Windows à partir du service en ligne?

2
mpromonet 26 janv. 2019 à 20:23

3 réponses

Meilleure réponse

Depuis janvier 2020, il est possible de créer un conteneur Windows à l'aide du service en ligne à l'aide des Windows Shared Runners (bêta).

Aujourd'hui, nous sommes heureux d'annoncer que Windows Shared Runners hébergé par GitLab est disponible en version bêta. Alors que nous commençons à déployer cet important service dans notre communauté, nous vous invitons à contribuer à façonner l'orientation des outils CI / CD pour l'écosystème Windows sur GitLab.com

Par exemple, en utilisant le .gitlab-ci.yml suivant

windows:
  stage: build
  image: servercore:ltsc2019
  tags:
  - shared-windows
  - windows
  - windows-1809
  script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  - docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG} . 
  - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG}
1
mpromonet 23 févr. 2020 à 10:45

Autant que je sache, les coureurs fournis par GitLab.com sont tous basés sur Linux. Vous devrez fournir à votre propre coureur un moteur Docker basé sur Windows pour créer une image Windows Docker.

1
King Chung Huang 26 janv. 2019 à 17:36

Cela doit être pris en charge avec GitLab 1.11 (mai 2019)

Windows Container Executor pour GitLab Runner

Dans GitLab 11.11, nous avons le plaisir d'ajouter un nouvel exécuteur à GitLab Runner pour utiliser les conteneurs Docker sous Windows.

https://about.gitlab.com/images/11_11/windows-container.png

Auparavant, l'utilisation de l'exécuteur shell pour orchestrer les commandes Docker était la principale approche pour Windows, mais avec cette mise à jour, vous pouvez désormais utiliser les conteneurs Docker directement sur Windows, de la même manière que s'ils étaient sur des hôtes Linux.
Cela ouvre la porte à des types plus avancés d'orchestration et de gestion de pipeline pour nos utilisateurs de plates-formes Microsoft.

Cette mise à jour comprend une prise en charge améliorée de PowerShell dans GitLab CI / CD, ainsi que de nouvelles images d'aide pour différentes versions de conteneurs Windows.
Veuillez noter que vos propres coureurs Windows peuvent être utilisés avec GitLab.com, mais ne sont actuellement pas disponibles dans le cadre de la flotte publique partagée.

Ceci provient du numéro 535: voir la documentation" Utilisation des conteneurs Windows ".

Il a des limites, mais c'est une bonne première étape.

3
mpromonet 23 août 2019 à 15:56