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 Réponses :
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.
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.
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 .
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
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
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é.