windows下使用docker执行器并配置 hosts 解析

news2025/1/22 20:43:31

本篇目录

    • 1. 问题背景
    • 2. 环境准备
      • 2.1 云上开通windows 2022 英文版机器
        • 2.1.1 安装 git
        • 2.1.2 安装 runner
        • 2.1.3 装docker
        • 2.1.4 注册runner并使用docker执行器
    • 3. 项目信息
      • 3.1 编写window bat脚本
      • 3.2 项目.gitlab-ci.yml文件
    • 4. 测试结论
      • 4.1 运行流水线
    • 5. troubleshooting
      • 问题1:Job failed: invalid volume specification: "/cache"
      • 问题2:Windows does not support privileged mode (docker.go:652:0s)
      • 问题3:extra_hosts配置生效问题

该实践来自于客户的一个真实需求

在这里插入图片描述

1. 问题背景

客户在 gitlab-runner 是使用的 windows 服务器上的 docker,客户表示在配置了extra_hosts后,发现并没有生效,无法实现某些需求。

2. 环境准备

2.1 云上开通windows 2022 英文版机器

2.1.1 安装 git

参考:安装git

2.1.2 安装 runner

参考:安装runner

2.1.3 装docker

参考: windows-docker

2.1.4 注册runner并使用docker执行器

runner的配置文件

concurrent = 1
check_interval = 0
connection_max_age = "15m0s"
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "windows"
  url = "https://jihulab.com"
  id = 31472
  token = "glrt-xxxxxxxxxx"
  token_obtained_at = 2024-08-06T10:34:29Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    MaxUploadedArchiveSize = 0
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    # extra_hosts = ["www.baidu.com:10.100.10.10"] # 经过反复多次的测试,发现该配置在windows下的docker执行器中不生效
    tls_verify = false
    image = "ruby:2.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["C:\\cache"] # 需要将["/cache"] 改成["C:\\cache"]
    shm_size = 0
    network_mtu = 0

3. 项目信息

3.1 编写window bat脚本

cat test.bat

@echo off
setlocal
rem 检查管理员权限
openfiles >nul 2>&1
if %errorlevel% neq 0 (
    echo 提升到管理员权限...
    powershell start-process -filepath '%0' -verb runas
    exit /b
)
rem 定义要添加的条目
set "hostEntry=192.168.10.100 www.baidu.com"
rem 检查条目是否已经存在
findstr /c:"%hostEntry%" %windir%\System32\drivers\etc\hosts >nul 2>&1
if %errorLevel% neq 0 (
    rem 添加条目到hosts文件
    echo %hostEntry% >> %windir%\System32\drivers\etc\hosts
    echo 条目已添加到hosts文件。
) else (
    echo 条目已存在于hosts文件中。
)
endlocal

3.2 项目.gitlab-ci.yml文件

cat .gitlab-ci.yml

default:
  tags:
    - windows

build:
  stage: build
  image: mcr.microsoft.com/dotnet/framework/sdk:4.8.1-windowsservercore-ltsc2022
  script:
    - ./test.bat
    - ping www.baidu.com

4. 测试结论

4.1 运行流水线

说明写入hosts后,解析生效
在这里插入图片描述
修改脚本(解析改成192.168.10.100和10.100.10.10),再次运行,如下两次结论:
192.168.10.100 无法解析
在这里插入图片描述
10.100.10.10 可以解析
在这里插入图片描述

5. troubleshooting

问题1:Job failed: invalid volume specification: “/cache”

在这里插入图片描述
原因:这个是由于默认runner注册的时候,volume的路径采用的是linux的路径方式,因为需要修改为windows的路径方式,将["/cache"]修改为["c:\\cache"]

问题2:Windows does not support privileged mode (docker.go:652:0s)

在这里插入图片描述
原因:这个是由于windows下runner的docker执行器不支持特权模式,因此将配置文件修改为privileged = trueprivileged = false

问题3:extra_hosts配置生效问题

extra_hosts本身是 docker 执行器的有效参数,但是通过在windows 上的 docker 和 linux 上的 docker 执行器上对比,linux 上是可以是生效的,但是 windows 上是不可以的,所以这里需要特殊说明下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos9编译安装opensips 二【进阶篇-定制目录+模块】推荐

环境:centos9 last opensips -V version: opensips 3.6.0-dev (x86_64/linux) flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, CC_O0, FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS1024, MAX_RE…

靶机复现-pikachu靶机文件包含漏洞

本篇文章旨在为网络安全渗透测试靶机复现学习。通过阅读本文,读者将能够对渗透pikachu靶场文件包含漏洞复现有一定的了解 原文学习链接 CSDN博主:One_Blanks主页地址 靶机资源下载 PHPStudy pikachu 一、前言 文件包含漏洞是编程中的一种安全隐患&a…

【机器学习实战高阶】基于深度学习的图像分割

机器学习项目图像分割 你可能已经注意到,大脑如何快速高效地识别并分类眼睛感知到的事物。大脑以某种方式进行训练,以便能够从微观层面分析所有内容。这种能力有助于我们从一篮子橙子中分辨出一个苹果。 计算机视觉是计算机科学的一个领域,…

【Elasticsearch 】 聚合分析:桶聚合

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

Skyeye 云 VUE 版本 v3.15.5 发布

Skyeye 云智能制造,采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程,CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…

TCP如何保证安全可靠?

TCP如何保证安全可靠? TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。为了保证数据传输的安全性和可靠性,TCP 采用了多种机制,包括确认和重传、数据校验、数据分片和排序、流量控制以及拥塞控制。 1. 确认和…

高等数学学习笔记 ☞ 定积分的积分方法

1. 定积分的换元积分法 1. 换元积分公式:设函数在闭区间上连续,令,若满足: ①:当时,;当时,。 此时的大小关系不一定,但与最好对应着写,否则就要留意变号的问…

Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案

作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…

Docker Load后存储的镜像及更改镜像存储目录的方法

Docker Load后存储的镜像及更改镜像存储目录的方法 Docker Load后存储的镜像更改镜像存储目录的方法脚本说明注意事项Docker作为一种开源的应用容器引擎,已经广泛应用于软件开发、测试和生产环境中。通过Docker,开发者可以将应用打包成镜像,轻松地进行分发和运行。而在某些场…

爬虫基础之爬取某站视频

目标网址:为了1/4螺口买小米SU7,开了一个月,它值吗?_哔哩哔哩_bilibili 本案例所使用到的模块 requests (发送HTTP请求)subprocess(执行系统命令)re (正则表达式操作)json (处理JSON数据) 需求分析: 视频的名称 F12 打开开发者工具 or 右击…

可视化-numpy实现线性回归和梯度下降法

代码如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib.patches import Patch# 生成二维输入数据 np.random.seed(0) X1 2 * np.random.rand(100, 1) # 第一个特征 X2 3 * np.random.rand(10…

计算机网络 (53)互联网使用的安全协议

一、SSL/TLS协议 概述: SSL(Secure Sockets Layer)安全套接层和TLS(Transport Layer Security)传输层安全协议是工作在OSI模型应用层的安全协议。SSL由Netscape于1994年开发,广泛应用于基于万维网的各种网络…

在视频汇聚平台EasyNVR平台中使用RTSP拉流的具体步骤

之前有用户反馈,在EasyNVR平台中添加Pull时使用海康设备的RTSP流地址无法播放。经过研发的优化及一系列严谨的验证流程,我们已确认优化后的EasyNVR平台,通过Pull方式添加海康设备的RTSP流已经能够正常播放。以下是具体的操作步骤:…

在Linux环境中使用Qt访问USB摄像头的解决方法

一、Cheese方法 1、将虚拟机关机,点击左上角的虚拟机设置,将显示所有USB输入设备选上,点击确定。 2、 打开虚拟机,在终端输入以下命令安装所需的软件包: sudo apt update sudo apt install cheese v4l-utils 确保摄…

Qt——网络编程

和多线程类似, Qt 为了支持跨平台, 对网络编程的 API 也进行了重新封装。 在进行网络编程之前, 需要在项目中的 .pro 文件中添加 network 模块,添加之后运行一下,使其包含的头文件能够被加载进Qt Creator。 Qt本身是一个非常庞大,包罗万象的…

docker 安装 mysql 详解

在平常的开发工作中,我们经常需要用到 mysql 数据库。那么在docker容器中,应该怎么安装mysql数据库呢。简单来说,第一步:拉取镜像;第二步:创建挂载目录并设置 my.conf;第三步:启动容…

no persistent volumes available for this claim and no storage class is set

目录标题 问题1问题描述**问题原因****解决步骤****1. 检查 PVC 的配置****2. 设置 StorageClass****创建默认 StorageClass****修改 PVC 的 StorageClass** **3. 创建匹配的 PV****4. 验证 PVC 是否绑定成功** **最佳实践** 问题2问题描述**问题原因****解决方案****1. 删除现…

2024微短剧行业生态洞察报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p39072 本报告合集洞察从多个维度全面解读微短剧行业。在行业发展层面,市场规模与用户规模双增长,创造大量高收入就业岗位并带动产业链升级。内容创作上,精品化、品牌化趋势凸显,题材走…

【22】Word:小李-高新技术企业政策❗

目录 题目​ NO1.2 NO3 NO4 NO5.6 NO7.8 NO9.10 若文章中存在删除空白行等要求,可以到最后来完成。注意最后一定要检查此部分!注意:大多是和事例一样即可,不用一摸一样,但也不要差太多。 题目 NO1.2 F12Fn&a…

SQLmap 自动注入 -02

1: 如果想获得SQL 数据库的信息,可以加入参数: -dbs sqlmap -u "http://192.168.56.133/mutillidae/index.php?pageuser-info.php&usernamexiaosheng&passwordabc&user-info-php-submit-buttonViewAccountDetails" --batch -p username -dbs…