本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

emsdk Docker 镜像下载 - 轩辕镜像

emsdk 镜像详细信息和使用指南

emsdk 镜像标签列表和版本信息

emsdk 镜像拉取命令和加速下载

emsdk 镜像使用说明和配置指南

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

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

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

emsdk
emscripten/emsdk

emsdk 镜像详细信息

emsdk 镜像标签列表

emsdk 镜像使用说明

emsdk 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

允许使用Emscripten SDK编译为WebAssembly
78 收藏0 次下载activeemscripten镜像

emsdk 镜像详细说明

emsdk 使用指南

emsdk 配置说明

emsdk 官方文档

Emscripten Docker镜像

此Dockerfile构建了一个独立版本的emsdk,使emscripten无需在主机系统上进行其他安装即可使用。该镜像发布于[***]

使用方法

简单使用示例

以下是使用该容器编译"hello-world"程序的示例:

bash
# 创建helloworld.cpp
cat << EOF > helloworld.cpp
#include <iostream>
int main() {
  std::cout << "Hello World!" << std::endl;
  return 0;
}
EOF
bash
# 使用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命令及后续参数,实际编译源代码

构建Dockerfile

构建参数

构建此镜像需要指定以下构建参数:

参数描述
EMSCRIPTEN_VERSIONEmscripten的已发布版本之一。例如1.38.45
可与-upstream变体一起使用,如1.38.45-upstream
最低支持版本为1.38.40

构建步骤

此步骤将在本地机器上按给定标签构建Dockerfile:

bash
# 使用docker
docker build \
    --network host \
    --build-arg=EMSCRIPTEN_VERSION=1.38.43-upstream \
    --tag emscripten/emsdk:1.38.43-upstream \
    .
bash
# 使用预定义的make目标
make version=1.38.43-upstream build

标记

如果直接使用docker build命令,指定的--tag应与Emscripten的发布版本匹配(可通过执行emsdk list查看非 legacy 版本列表)。

推送

此步骤将本地镜像推送到默认Docker仓库。需要确保已通过docker cli登录(docker login)并有权限推送到该仓库。

bash
# 使用docker
docker push emscripten/emsdk:1.38.43-upstream
bash
# 使用预定义的make目标
make version=1.38.43-upstream push

如果推送最新版本,还应将该版本标记为latestlatest-upstream并推送:

bash
# 使用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
bash
# 使用预定义的make目标
make version=1.38.43-upstream alias=latest-upstream push

扩展镜像

如果您的项目使用此镜像未提供的包,您可能需要:

  • 为此仓库贡献代码:您的依赖项可能是非侵入性的或对其他人有用
  • 创建基于此镜像的自定义镜像

创建自定义镜像步骤

  1. 创建自己的Dockerfile:

    dockerfile
    # 指向任何您认为适合扩展的基础镜像
    FROM emscripten/emsdk:1.38.25
    
    # 安装项目所需的工具,例如ninja-build
    RUN apt update && apt install -y ninja-build
    
  2. 构建它:

    shell
    docker build -t extended_emscripten .
    
  3. 测试:

    shell
    docker run --rm extended_emscripten ninja --version
    # Python 2.7.16
    

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"