| FROM ubuntu:noble AS stage_build |
|
|
| ARG EMSCRIPTEN_VERSION=tot |
| ENV EMSDK=/emsdk |
|
|
| |
|
|
| RUN echo "## Start building" \ |
| && echo "## Update and install packages" \ |
| && apt-get -qq -y update \ |
| && apt-get -qq install -y --no-install-recommends \ |
| binutils \ |
| build-essential \ |
| ca-certificates \ |
| file \ |
| git \ |
| python3 \ |
| python3-pip \ |
| && echo "## Done" |
|
|
| |
| COPY . ${EMSDK} |
|
|
| RUN echo "## Install Emscripten" \ |
| && cd ${EMSDK} \ |
| && ./emsdk install ${EMSCRIPTEN_VERSION} \ |
| && echo "## Done" |
|
|
| |
| |
| |
| RUN cd ${EMSDK} \ |
| && echo "## Generate standard configuration" \ |
| && ./emsdk activate ${EMSCRIPTEN_VERSION} \ |
| && chmod 777 ${EMSDK}/upstream/emscripten \ |
| && chmod -R 777 ${EMSDK}/upstream/emscripten/cache \ |
| && echo "int main() { return 0; }" > hello.c \ |
| && ${EMSDK}/upstream/emscripten/emcc -c hello.c \ |
| && cat ${EMSDK}/upstream/emscripten/cache/sanity.txt \ |
| && echo "## Done" |
|
|
| |
| RUN echo "## Aggressive optimization: Remove debug symbols" \ |
| && cd ${EMSDK} && . ./emsdk_env.sh \ |
| |
| && strip -s `which node` \ |
| |
| && rm -fr ${EMSDK}/upstream/emscripten/tests \ |
| |
| && find ${EMSDK}/upstream/bin -type f -exec strip -s {} + || true \ |
| && echo "## Done" |
|
|
| |
| |
| |
|
|
| FROM ubuntu:noble AS stage_deploy |
|
|
| COPY --from=stage_build /emsdk /emsdk |
|
|
| |
| |
| |
| |
| ENV EMSDK=/emsdk |
| ENV PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/22.16.0_64bit/bin:${PATH}" |
|
|
| |
|
|
| RUN echo "## Update and install packages" \ |
| && apt-get -qq -y update \ |
| |
| |
| |
| && DEBIAN_FRONTEND="noninteractive" TZ="America/San_Francisco" apt-get -qq install -y --no-install-recommends \ |
| sudo \ |
| libxml2 \ |
| ca-certificates \ |
| python3 \ |
| python3-pip \ |
| wget \ |
| curl \ |
| zip \ |
| unzip \ |
| git \ |
| git-lfs \ |
| ssh-client \ |
| build-essential \ |
| make \ |
| ant \ |
| libidn12 \ |
| cmake \ |
| openjdk-11-jre-headless \ |
| |
| && apt-get -y clean \ |
| && apt-get -y autoclean \ |
| && apt-get -y autoremove \ |
| && rm -rf /var/lib/apt/lists/* \ |
| && rm -rf /var/cache/debconf/*-old \ |
| && rm -rf /usr/share/doc/* \ |
| && rm -rf /usr/share/man/?? \ |
| && rm -rf /usr/share/man/??_* \ |
| && echo "## Done" |
|
|
| |
| |
| WORKDIR /src |
|
|
| ENTRYPOINT ["/emsdk/docker/entrypoint.sh"] |
|
|
| LABEL maintainer="kontakt@trzeci.eu" \ |
| org.label-schema.name="emscripten" \ |
| org.label-schema.description="The official container with Emscripten SDK" \ |
| org.label-schema.url="https://emscripten.org" \ |
| org.label-schema.vcs-url="https://github.com/emscripten-core/emsdk" \ |
| org.label-schema.docker.dockerfile="/docker/Dockerfile" |
|
|
| |
|
|