carton/Dockerfile

41 lines
1.3 KiB
Docker

FROM ghcr.io/swiftwasm/swift:5.6-focal
LABEL maintainer="SwiftWasm Maintainers <hello@swiftwasm.org>"
LABEL Description="Carton is a watcher, bundler, and test runner for your SwiftWasm apps"
LABEL org.opencontainers.image.source https://github.com/swiftwasm/carton
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && apt-get -q update && \
apt-get -q install -y \
build-essential \
libncurses5 \
libsqlite3-0 \
libsqlite3-dev \
libxkbcommon0 \
curl unzip \
&& export WASMER_DIR=/usr/local && curl https://get.wasmer.io -sSfL | sh -s "2.2.1" && \
rm -r /var/lib/apt/lists/*
ENV CARTON_ROOT=/root/.carton
ENV CARTON_DEFAULT_TOOLCHAIN=wasm-5.6.0-RELEASE
RUN mkdir -p $CARTON_ROOT/sdk && \
mkdir -p $CARTON_ROOT/sdk/$CARTON_DEFAULT_TOOLCHAIN && \
ln -s /usr $CARTON_ROOT/sdk/$CARTON_DEFAULT_TOOLCHAIN/usr
COPY . carton/
ENV NODE_VERSION=18.1.0
RUN curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" && \
tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 --no-same-owner
RUN cd carton && \
./install_ubuntu_deps.sh && \
swift build -c release && \
mv .build/release/carton /usr/bin && \
cd .. && \
rm -rf carton /tmp/wasmer*
# Set the default command to run
CMD ["carton --help"]