轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
singlespa/import-map-deployer
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

import-map-deployer Docker 镜像下载 - 轩辕镜像

import-map-deployer 镜像详细信息和使用指南

import-map-deployer 镜像标签列表和版本信息

import-map-deployer 镜像拉取命令和加速下载

import-map-deployer 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

import-map-deployer
singlespa/import-map-deployer

import-map-deployer 镜像详细信息

import-map-deployer 镜像标签列表

import-map-deployer 镜像使用说明

import-map-deployer 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

import-map-deployer是一个后端服务,用于安全更新import map JSON文件,解决多CI部署并发修改导致的覆盖问题,支持通过HTTP请求自动化前端部署流程,兼容S3、Digital Ocean Spaces等多种存储服务,提供HTTP基本认证保护。
3 收藏0 次下载activesinglespa镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

import-map-deployer 镜像详细说明

import-map-deployer 使用指南

import-map-deployer 配置说明

import-map-deployer 官方文档

import-map-deployer

镜像概述和主要用途

import-map-deployer是一个后端服务,用于更新import map JSON文件。使用该服务时,前端部署通过两步完成:

  1. 将JavaScript文件上传到静态服务器或CDN(如AWS S3、Azure Storage、Digital Ocean Spaces等);
  2. 发送HTTP请求(如通过curl或httpie)修改现有import map,指向新上传的文件。

这两步通常在CI流程中执行,以实现前端代码的自动化部署。该服务核心价值在于解决多CI流水线并发部署时的import map覆盖问题,避免传统"拉取-修改-重新上传"流程中的竞态条件。

!import-map-deployer演示

核心功能和特性

并发安全处理

  • 解决多CI流水线同时修改import map的竞态条件,确保部署操作原子性,避免后上传覆盖先上传的部署内容。

多存储服务支持

  • 兼容AWS S3、Digital Ocean Spaces、Azure Storage、Google Cloud Storage及本地文件系统等多种存储后端。

安全机制

  • 支持HTTP基本认证,通过用户名/密码控制访问权限。
  • 提供urlSafeList配置项,限制仅允许信任的URL前缀或自定义函数验证的URL被添加到import map。

灵活配置

  • 支持JSON或JavaScript配置文件,后者可自定义readManifest和writeManifest函数实现个性化读写逻辑。
  • 可配置多环境(locations)管理,如default、prod、test等不同环境的import map。

完整API端点

  • 提供健康检查、环境列表查询、import map读写、服务增删等RESTful API端点。

使用场景和适用范围

  • 前端微服务部署:管理多个前端微应用的import map,支持独立部署各微应用。
  • CI/CD自动化流程:集成到GitLab CI、GitHub Actions等CI工具,实现前端部署自动化。
  • 多环境管理:为开发、测试、生产等不同环境维护独立的import map配置。
  • 高并发部署场景:当多个团队或项目同时部署前端资源时,确保import map修改的安全性。

安装和使用方法

Docker安装

import-map-deployer已发布到DockerHub,镜像名为singlespa/import-map-deployer。

Dockerfile示例

FROM singlespa/import-map-deployer:<version-tag>

ENV HTTP_USERNAME=your-username HTTP_PASSWORD=your-password

COPY conf.js /www/

CMD ["yarn", "start", "conf.js"]

docker-compose示例

从项目根目录运行docker-compose up,需确保当前目录存在config.json配置文件:

version: '3'
services:
  import-map-deployer:
    image: singlespa/import-map-deployer:<version-tag>
    ports:
      - "5000:5000"
    volumes:
      - ./config.json:/www/config.json
    environment:
      - HTTP_USERNAME=admin
      - HTTP_PASSWORD=secure-password

Node安装

通过npm安装并运行:

# 直接运行
npx import-map-deployer config.json

# 自定义端口(默认5000)
PORT=8080 npx import-map-deployer config.json

配置文件详解

配置文件用于设置认证信息、存储方式、URL安全策略等,支持JSON或JavaScript格式(.json或.js)。

核心配置参数

参数名类型说明
urlSafeListarray信任的URL前缀列表或验证函数,未配置则允许所有URL(不推荐)
usernamestringHTTP基本认证用户名
passwordstringHTTP基本认证密码
manifestFormatstring必须,取值"importmap"或"sofe",指定import map格式
locationsobject必须,定义各环境的import map存储位置,键为环境名,值为存储路径(如s3://bucket/import-map.json)
packagesViaTrailingSlashesboolean是否自动生成带尾随斜杠的包记录,默认true
cacheControlstring导入映射文件的缓存控制头,默认"public, must-revalidate, max-age=0"

JSON配置示例

{
  "urlSafeList": ["[***]", "[***]"],
  "username": "admin",
  "password": "secure-pass",
  "manifestFormat": "importmap",
  "locations": {
    "default": "s3://my-default-bucket/import-map.json",
    "prod": "s3://my-prod-bucket/import-map.json",
    "test": "file://./test-import-map.json"
  },
  "s3Endpoint": "[***]",
  "cacheControl": "public, max-age=300"
}

JavaScript配置示例(支持自定义函数)

module.exports = {
  urlSafeList: [
    "[***]",
    (url) => url.hostname.endsWith(".trusted-domain.com")
  ],
  username: "admin",
  password: process.env.IMD_PASSWORD,
  manifestFormat: "importmap",
  locations: {
    "custom-env": "custom://path"
  },
  // 自定义读取函数
  readManifest: async (env) => {
    const response = await fetch(`[***]{env}/import-map.json`);
    return response.text();
  },
  // 自定义写入函数
  writeManifest: async (importMapStr, env) => {
    await fetch(`[***]{env}/import-map.json`, {
      method: "PUT",
      body: importMapStr
    });
    return JSON.parse(importMapStr);
  }
};

内置IO方法

AWS S3

通过s3://前缀指定S3存储路径,格式为s3://bucket-name/file.json。依赖AWS CLI环境变量(如AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)进行认证。

配置示例:

{
  "manifestFormat": "importmap",
  "locations": {
    "prod": "s3://my-cdn-bucket/import-map.json"
  },
  "s3": {
    "putObject": { "ACL": "public-read" }
  }
}

Digital Ocean Spaces

通过spaces://前缀指定,格式为spaces://bucket-name.region.digitaloceanspaces.com/file.json。需配置s3Endpoint指向Spaces区域端点。

配置示例:

{
  "manifestFormat": "importmap",
  "s3Endpoint": "[***]",
  "locations": {
    "staging": "spaces://my-spaces-bucket.nyc3.digitaloceanspaces.com/import-map.json"
  }
}

Azure Storage

通过对象形式配置,需设置azureContainer、azureBlob,认证通过环境变量AZURE_STORAGE_CONNECTION_STRING或配置中的azureConnectionString。

配置示例:

module.exports = {
  manifestFormat: "importmap",
  locations: {
    "azure-env": {
      azureContainer: "my-container",
      azureBlob: "import-map.json",
      azureConnectionString: process.env.AZURE_CONN_STR
    }
  }
};

Google Cloud Storage

通过gs://前缀指定,格式为gs://bucket-name/file.json。需设置环境变量GOOGLE_APPLICATION_CREDENTIALS指向密钥文件。

配置示例:

{
  "manifestFormat": "importmap",
  "locations": {
    "gcs-env": "gs://my-gcs-bucket/import-map.json"
  }
}

文件系统

直接指定本地文件路径,如./prod-import-map.json。

配置示例:

{
  "manifestFormat": "importmap",
  "locations": {
    "local": "./local-import-map.json"
  }
}

API端点

健康检查

  • GET /health 或 GET /:返回HTTP 200,文本响应"OK"。

环境列表

  • GET /environments:获取所有配置的环境信息。

示例(curl):

curl -u admin:secure-pass localhost:5000/environments

响应:

{
  "environments": [
    { "name": "default", "aliases": [], "isDefault": true },
    { "name": "prod", "aliases": [], "isDefault": false }
  ]
}

获取Import Map

  • GET /import-map.json?env=prod:获取指定环境的import map。

示例:

curl -u admin:secure-pass "localhost:5000/import-map.json?env=prod"

更新Import Map

  • PATCH /import-map.json?env=prod:合并请求体中的import map到现有配置。

示例(HTTPie):

http -a admin:secure-pass PATCH :5000/import-map.json?env=prod < new-import-map.json

更新服务

  • PATCH /services?env=stage:添加或更新单个服务。

请求体:

{ "service": "my-app", "url": "[***]" }

示例(curl):

curl -u admin:secure-pass -X PATCH -H "Content-Type: application/json" -d '{"service":"my-app","url":"[***]"}' "localhost:5000/services?env=stage"

删除服务

  • DELETE /services/{SERVICE_NAME}?env=alpha:删除指定服务。

示例(含特殊字符,需URI编码):

# 删除服务"@company/my-app"(编码后为"%40company%2Fmy-app")
curl -u admin:secure-pass -X DELETE "localhost:5000/services/%40company%2Fmy-app?env=alpha"

安全建议

  1. 网络隔离:仅在VPC内部暴露import-map-deployer服务,避免公网访问。
  2. CI访问控制:确保CI runner位于VPC内或通过隧道访问服务。
  3. 强制认证:必须配置username和password启用HTTP基本认证,且凭证仅CI runner知晓。
  4. URL安全列表:务必配置urlSafeList限制信任的URL前缀,防止恶意URL注入。
  5. 最小权限:存储服务(如S3)访问凭证仅授予import-map-deployer必要的读写权限。
查看更多 import-map-deployer 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.