Я установил образ Windows Docker и запустил его на своем компьютере с Windows 10.В образе запущенного докера зарегистрирован бегун gitlab на моем сервере gitlab.Проблема в том, что сервер gitlab видит IP-адрес хоста с Windows-машиной и в результате он подключен к сети.
Есть ли способ запустить сборщик сборки в образе интерактивного докера?
Вот мой dockerfile
# escape=`
FROM microsoft/windowsservercore
RUN @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
# wait for vs_installer.exe, vs_installerservice.exe
# or vs_installershell.exe because choco doesn't
RUN powershell -NoProfile -InputFormat None -Command `
choco install git 7zip -y; `
choco install visualcpp-build-tools `
-y; `
Write-Host 'Waiting for Visual C++ Build Tools to finish'; `
Wait-Process -Name vs_installer
#WORKDIR C:\build
#CMD powershell -ExecutionPolicy Bypass -Command .\release.ps1
COPY entrypoint.bat entrypoint.bat
# Install Chocolatey
#RUN powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET #"PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
# Register the GitLab Runner
COPY gitlab-runner-windows-amd64.exe /gitlab/gitlab-runner.exe
RUN /gitlab/gitlab-runner.exe install
SHELL ["cmd.exe", "/s", "/c", "C:\\entrypoint.bat"]
WORKDIR /code
ENTRYPOINT ["C:\\entrypoint.bat"]
CMD ["cmd"]
EXPOSE 443
и мой файл entrypoint.bat
@echo off
pushd C:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat"
REM call "C:\Program Files (x86)\Microsoft Visual C++ Build Tools\vcbuildtools.bat"
popd
%*
Вот как я его создаю
docker build -t windows .
Вот как я его запускаю
docker run -it windows cmd
Вот как я регистрирую gitlab runner
C:\gitlab>gitlab-runner register --non-interactive --name "Windows docker builder" --url "https://gitlabserver/" --registration-token TOKEN --tag-list windows --executor shell
Registering runner... succeeded runner=XXX
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
На сервере GitLab я вижу, что это регистр, но для него отображается IP-адрес хост-машины Windows 10, а неIP-адрес внутри докера.