FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
python3 \
python3-pip \
nodejs \
npm \
curl \
git \
ca-certificates \
unzip \
wget \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install EMSDK (Emscripten SDK)
WORKDIR /opt
RUN git clone https://github.com/emscripten-core/emsdk.git && \
cd emsdk && \
./emsdk install latest && \
./emsdk activate latest
ENV EMSDK=/opt/emsdk
ENV PATH="$EMSDK:/opt/emsdk/upstream/emscripten:$PATH"
# Copy source into image
WORKDIR /workspace
COPY . /workspace
# Attempt to build the Emscripten target (if waf is available in the image)
RUN set -eux; \
if [ -d "applib-targets/emscripten" ]; then \
echo "Attempting to build applib-targets/emscripten (emscripten) with waf if available..."; \
if command -v waf >/dev/null 2>&1; then \
(cd applib-targets/emscripten && waf configure && waf build) ; \
else \
echo "waf not found; skipping build step in container image." ; \
fi; \
fi
CMD ["/bin/bash"]
WRITEWriteFile· step #20s
.dockerignore184 bytes written
▸dockerignore19 lines · 184 chars
# Ignore version control and large local artifacts
.git
.gitignore
node_modules/
dist/
bin/
build/
.tmp/
*.log
*.tmp
*.swp
.DS_Store
.env
.devcontainer
# Misc
coverage/
tests/output/