builder-webassembly/Dockerfile.wasi

29 lines
1.3 KiB
Docker

# SPDX-FileCopyrightText: 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"]
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:${WASI_SDK_PREFIX}/bin:$PATH
COPY override/usr/local/bin/nxbuild-wasi /usr/local/bin/
# hadolint ignore=DL3003
RUN git -C "${HOME}" clone --single-branch --depth=1 https://code.nephatrine.net/nephatrine/hello-test.git \
&& 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"