ページへ戻る
印刷
技術系備忘録/Docker/Emscripten
をテンプレートにして作成 ::
シンクリッジ
xpwiki
:技術系備忘録/Docker/Emscripten をテンプレートにして作成
開始行:
WebAssembly を使うと JavaScript 以外をブラウザで動かすこ...
[[Emscripten:https://emscripten.org/]] は C/C++ から WebA...
そして C++ ならやはり [[Boost C++:https://www.boost.org/]...
なお、Boost は Emscripten を公式にはサポートしていないの...
* Dockerfile
FROM ubuntu:22.04
RUN apt update \
&& apt -y upgrade \
&& apt clean && rm -rf /var/lib/apt/lists/*
# timezone Asia/Tokyo ############
RUN apt update \
&& apt -y install tzdata \
&& apt clean && rm -rf /var/lib/apt/lists/*
ENV TZ=Asia/Tokyo
# build-essential ####################
RUN apt update \
&& apt -y install --no-install-recommends build-essenti...
&& apt clean && rm -rf /var/lib/apt/lists/*
# tools ##########################
RUN apt update \
&& apt -y install git cmake wget python3 \
&& apt clean && rm -rf /var/lib/apt/lists/*
# emscripten ##########################
ARG EMSCRIPTEN_VERSION=3.1.56
ARG EMSDKDIR=/opt/emsdk
RUN git clone https://github.com/emscripten-core/emsdk.g...
RUN cd ${EMSDKDIR} \
&& ./emsdk install ${EMSCRIPTEN_VERSION} \
&& ./emsdk activate ${EMSCRIPTEN_VERSION}
RUN echo "source ${EMSDKDIR}/emsdk_env.sh" >> ~/.bash_pr...
RUN echo '#!/bin/bash\nexec /bin/bash -l -c "$*"' > /opt...
&& chmod +x /opt/entrypoint.sh
ENTRYPOINT ["/opt/entrypoint.sh"]
# boost ##########################
ARG BOOST_VERSION=1.84.0
RUN wget https://github.com/boostorg/boost/releases/down...
&& tar xvf boost-${BOOST_VERSION}.tar.xz \
&& cd boost-${BOOST_VERSION} \
&& ./bootstrap.sh \
&& ./b2 headers \
&& mkdir -p /opt/include \
&& cp -rl boost /opt/include/boost/ \
&& cd ..\
&& rm -f boost*.tar.xz \
&& rm -rf boost-${BOOST_VERSION}
ENV EMCC_CFLAGS="-I /opt/include"
* 使い方の例
まずは普通に docker build して image を構築します。
> docker build -t emsdk .
こんな感じでビルドできます。ビルドに必要なソースフォルダ(...
> docker run --rm --name emsdk -v $(pwd)/sample:/opt/vol...
-- &font(90%){なお Windows では "$(pwd)" はNGですが、"${p...
さらに Emscripten のサーバー機能を利用するとブラウザでの...
> docker run --rm --name emsdk -v $(pwd)/sample:/opt/vol...
手元のブラウザで localhost:8080 を開くと確認できると思い...
* github
github にも公開しておりますので、もしお役に立ちそうなら使...
[[https://github.com/tr-takatsuka/emsdk-docker:https://gi...
使い方の事例や CMake を利用したサンプルコードも軽く掲載し...
問題点やご助言などなど何かありましたら御一報いただけると...
Emscripten と Boost の関係者の方々に感謝です。
終了行:
WebAssembly を使うと JavaScript 以外をブラウザで動かすこ...
[[Emscripten:https://emscripten.org/]] は C/C++ から WebA...
そして C++ ならやはり [[Boost C++:https://www.boost.org/]...
なお、Boost は Emscripten を公式にはサポートしていないの...
* Dockerfile
FROM ubuntu:22.04
RUN apt update \
&& apt -y upgrade \
&& apt clean && rm -rf /var/lib/apt/lists/*
# timezone Asia/Tokyo ############
RUN apt update \
&& apt -y install tzdata \
&& apt clean && rm -rf /var/lib/apt/lists/*
ENV TZ=Asia/Tokyo
# build-essential ####################
RUN apt update \
&& apt -y install --no-install-recommends build-essenti...
&& apt clean && rm -rf /var/lib/apt/lists/*
# tools ##########################
RUN apt update \
&& apt -y install git cmake wget python3 \
&& apt clean && rm -rf /var/lib/apt/lists/*
# emscripten ##########################
ARG EMSCRIPTEN_VERSION=3.1.56
ARG EMSDKDIR=/opt/emsdk
RUN git clone https://github.com/emscripten-core/emsdk.g...
RUN cd ${EMSDKDIR} \
&& ./emsdk install ${EMSCRIPTEN_VERSION} \
&& ./emsdk activate ${EMSCRIPTEN_VERSION}
RUN echo "source ${EMSDKDIR}/emsdk_env.sh" >> ~/.bash_pr...
RUN echo '#!/bin/bash\nexec /bin/bash -l -c "$*"' > /opt...
&& chmod +x /opt/entrypoint.sh
ENTRYPOINT ["/opt/entrypoint.sh"]
# boost ##########################
ARG BOOST_VERSION=1.84.0
RUN wget https://github.com/boostorg/boost/releases/down...
&& tar xvf boost-${BOOST_VERSION}.tar.xz \
&& cd boost-${BOOST_VERSION} \
&& ./bootstrap.sh \
&& ./b2 headers \
&& mkdir -p /opt/include \
&& cp -rl boost /opt/include/boost/ \
&& cd ..\
&& rm -f boost*.tar.xz \
&& rm -rf boost-${BOOST_VERSION}
ENV EMCC_CFLAGS="-I /opt/include"
* 使い方の例
まずは普通に docker build して image を構築します。
> docker build -t emsdk .
こんな感じでビルドできます。ビルドに必要なソースフォルダ(...
> docker run --rm --name emsdk -v $(pwd)/sample:/opt/vol...
-- &font(90%){なお Windows では "$(pwd)" はNGですが、"${p...
さらに Emscripten のサーバー機能を利用するとブラウザでの...
> docker run --rm --name emsdk -v $(pwd)/sample:/opt/vol...
手元のブラウザで localhost:8080 を開くと確認できると思い...
* github
github にも公開しておりますので、もしお役に立ちそうなら使...
[[https://github.com/tr-takatsuka/emsdk-docker:https://gi...
使い方の事例や CMake を利用したサンプルコードも軽く掲載し...
問題点やご助言などなど何かありましたら御一報いただけると...
Emscripten と Boost の関係者の方々に感謝です。
ページ名: