3
votes

gitlab ci ne peut pas créer de conteneur Windows

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

J'ai fait un test avec un fichier Docker très simple:

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}

Utilisation de .gitlab-ci.yml

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


3 commentaires

Et quelle est la configuration du coureur? Il semble que vous exécutiez un exécuteur de docker Linux à l'aide d'un conteneur Linux.


@JakubKania: Je suppose que le coureur utilise la configuration par défaut, comment puis-je configurer pour utiliser un coureur Windows? mes tests sont disponibles sur gitlab.com/mpromonet/dockertest


Configurez votre propre coureur au lieu d'utiliser un coureur partagé.


3 Réponses :


1
votes

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.


0 commentaires

3
votes

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

Windows Container Executor pour GitLab Runner

Dans GitLab 11.11, nous sommes heureux 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 directement les conteneurs Docker sur Windows, à peu près de la même manière que s'ils étaient sur des hôtes Linux.

br> 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 exécuteurs 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 .


0 commentaires

3
votes

Depuis janvier 2020 il est possible de créer un conteneur Windows à l'aide du service en ligne à l'aide des Windows Shared Runners (version 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 ceci service important à notre communauté, nous vous invitons à contribuer à façonner le direction des outils CI / CD pour l'écosystème Windows sur GitLab.com

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

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

Avec un simple Dockerfile

windows:
  stage: build
  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}

L'exécution du pipeline résultat entrez la description de l'image ici


5 commentaires

Avez-vous essayé cette configuration que vous avez fournie avant de publier? Je me demande simplement parce que j'ai remarqué que vous utilisez les coureurs partagés, bien que l'une des limitations soit que nous ne pouvons pas utiliser image ou service dans la configuration, comme indiqué ici: docs.gitlab.com/ee/user/gitlab_com /…


@ FC.Araujo: oui, il fonctionnait lorsque j'ai publié la réponse, et il fonctionnait hier gitlab.com/mpromonet/dockerwindows/-/jobs/446698288


Génial @mpromonet, c'est surprenant que la documentation ne corresponde probablement pas à 100%, merci pour le partage! 👍


Ouais probablement! Seriez-vous capable de l'essayer juste pour vérifier les pls? Je prévois d'avoir bientôt un runner Windows partagé sur une instance privée et je vais probablement pouvoir le tester également dans quelques jours.


@ FC.Araujo: la suppression de l'image fonctionne, la réponse a été mise à jour en supprimant ce champ déroutant, ce n'est pas nécessaire