Der GitLab-Runner scheint unter Windows noch nicht zu funktionieren, und es gibt ein offenes Problem, um dieses Problem zu beheben .
In der Zwischenzeit verschiebe ich meinen Skriptcode in ein Bash-Skript, das ich problemlos einem lokal ausgeführten Docker-Container zuordnen und ausführen kann.
In diesem Fall möchte ich in meinem Job einen Docker-Container erstellen, also erstelle ich ein Skript 'build':
#!/bin/bash
docker build --pull -t myimage:myversion .
In meiner .gitlab-ci.yaml führe ich das Skript aus:
image: docker:latest
services:
- docker:dind
before_script:
- apk add bash
build:
stage: build
script:
- chmod 755 build
- build
Um das Skript lokal mit Powershell auszuführen, kann ich das erforderliche Image starten und das Volume den Quelldateien zuordnen:
$containerId = docker run --privileged -d -v ${PWD}:/src docker:dind
Bash installieren, falls nicht vorhanden:
docker exec $containerId apk add bash
Festlegen von Berechtigungen für das Bash-Skript:
docker exec -it $containerId chmod 755 /src/build
Führen Sie das Skript aus:
docker exec -it --workdir /src $containerId bash -c 'build'
Dann stoppen Sie den Container:
docker stop $containerId
Und zum Schluss den Behälter aufräumen:
docker container rm $containerId