44 lines
1.9 KiB
Docker
44 lines
1.9 KiB
Docker
# SPDX-FileCopyrightText: 2023 - 2024 Daniel Wolf <nephatrine@gmail.com>
|
|
#
|
|
# SPDX-License-Identifier: ISC
|
|
|
|
# hadolint ignore=DL3007
|
|
FROM code.nephatrine.net/nephnet/nxb-debian:latest
|
|
LABEL maintainer="Daniel Wolf <nephatrine@gmail.com>"
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
ENV EMSCRIPTEN_PATH=/opt/emsdk
|
|
ARG EMSCRIPTEN_VERSION=3.1.56
|
|
RUN git -C /opt clone -b "$EMSCRIPTEN_VERSION" --single-branch --depth=1 https://github.com/emscripten-core/emsdk.git
|
|
WORKDIR /opt/emsdk
|
|
# hadolint ignore=SC1091
|
|
RUN ./emsdk install "${EMSCRIPTEN_VERSION}" --shallow --generator=Ninja \
|
|
&& ./emsdk activate "${EMSCRIPTEN_VERSION}" \
|
|
&& . ./emsdk_env.sh \
|
|
&& embuilder build SYSTEM --pic --lto \
|
|
&& rm -rf /tmp/* /var/tmp/*
|
|
ENV PATH=${EMSCRIPTEN_PATH}:${EMSCRIPTEN_PATH}/upstream/emscripten:$PATH
|
|
|
|
ARG WASI_VERSION=21
|
|
WORKDIR /opt
|
|
# hadolint ignore=SC2010
|
|
RUN curl https://wasmtime.dev/install.sh -sSf | bash \
|
|
&& curl -LO "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION}.0-linux.tar.gz" \
|
|
&& tar -xvzf "wasi-sdk-${WASI_VERSION}.0-linux.tar.gz" \
|
|
&& mv "wasi-sdk-${WASI_VERSION}.0" wasi-sdk \
|
|
&& cp -nrvs /opt/wasi-sdk/share/cmake/Platform/. "/usr/share/$(ls /usr/share/ | grep -E 'cmake-[0-9]' | tail -1)/Modules/Platform/" \
|
|
&& rm -rf /tmp/* /var/tmp/* "/opt/wasi-sdk-${WASI_VERSION}.0-linux.tar.gz"
|
|
ENV WASI_SDK_PREFIX=/opt/wasi-sdk WASMTIME_HOME=/root/.wasmtime
|
|
ENV PATH=${WASMTIME_HOME}/bin:$PATH
|
|
|
|
COPY override /
|
|
# hadolint ignore=DL3003
|
|
RUN git -C "${HOME}" clone --single-branch --depth=1 https://code.nephatrine.net/nephatrine/hello-test.git \
|
|
&& mkdir /tmp/build-emscripten && cd /tmp/build-emscripten \
|
|
&& nxbuild-emscripten -GNinja "${HOME}/hello-test" \
|
|
&& ninja && node HelloTest \
|
|
&& mkdir /tmp/build-wasi && cd /tmp/build-wasi \
|
|
&& nxbuild-wasi -GNinja "${HOME}/hello-test" \
|
|
&& ninja && wasmtime HelloTest \
|
|
&& cd .. && rm -rf /tmp/* /var/tmp/* "${HOME}/hello-test"
|