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

此Dockerfile构建了一个独立版本的emsdk,使emscripten无需在主机系统上进行其他安装即可使用。该镜像发布于[***]
以下是使用该容器编译"hello-world"程序的示例:
# 创建helloworld.cpp cat << EOF > helloworld.cpp #include <iostream> int main() { std::cout << "Hello World!" << std::endl; return 0; } EOF
# 使用docker镜像编译 docker run \ --rm \ -v $(pwd):/src \ -u $(id -u):$(id -g) \ emscripten/emsdk \ emcc helloworld.cpp -o helloworld.js # 在主机上执行 node helloworld.js
| 部分 | 描述 |
|---|---|
docker run | 标准的在容器中运行命令的指令 |
--rm | 执行后移除容器(优化) |
-v $(pwd):/src | 将主机当前目录挂载到容器中的/src路径 提示:这有助于排查问题,因为我们保留了与主机完全相同的路径。在这种情况下,现代编辑器(如Sublime、Atom、VS Code)允许我们Ctrl+点击有问题的文件 |
-u $(id -u):$(id -g) | 以与本地用户相同的UID和GID的非root用户身份运行容器。因此,由此产生的所有文件都可被非root用户访问 |
emscripten/emsdk | 获取此容器的最新标签 |
emcc helloworld.cpp -o helloworld.js | 在容器内执行emcc命令及后续参数,实际编译源代码 |
构建此镜像需要指定以下构建参数:
| 参数 | 描述 |
|---|---|
EMSCRIPTEN_VERSION | Emscripten的已发布版本之一。例如1.38.45可与 -upstream变体一起使用,如1.38.45-upstream最低支持版本为1.38.40 |
此步骤将在本地机器上按给定标签构建Dockerfile:
# 使用docker docker build \ --network host \ --build-arg=EMSCRIPTEN_VERSION=1.38.43-upstream \ --tag emscripten/emsdk:1.38.43-upstream \ .
# 使用预定义的make目标 make version=1.38.43-upstream build
如果直接使用docker build命令,指定的--tag应与Emscripten的发布版本匹配(可通过执行emsdk list查看非 legacy 版本列表)。
此步骤将本地镜像推送到默认Docker仓库。需要确保已通过docker cli登录(docker login)并有权限推送到该仓库。
# 使用docker docker push emscripten/emsdk:1.38.43-upstream
# 使用预定义的make目标 make version=1.38.43-upstream push
如果推送最新版本,还应将该版本标记为latest或latest-upstream并推送:
# 使用docker cli # 对于fastcomp变体(默认后端) docker tag emscripten/emsdk:1.38.43 emscripten/emsdk:latest docker push emscripten/emsdk:latest # 对于upstream变体 docker tag emscripten/emsdk:1.38.43-upstream emscripten/emsdk:latest-upstream docker push emscripten/emsdk:latest-upstream
# 使用预定义的make目标 make version=1.38.43-upstream alias=latest-upstream push
如果您的项目使用此镜像未提供的包,您可能需要:
创建自己的Dockerfile:
# 指向任何您认为适合扩展的基础镜像 FROM emscripten/emsdk:1.38.25 # 安装项目所需的工具,例如ninja-build RUN apt update && apt install -y ninja-build
构建它:
docker build -t extended_emscripten .
测试:
docker run --rm extended_emscripten ninja --version # Python 2.7.16
免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429