Skip to content

Commit 6d64d51

Browse files
committed
Re-use hyperlight dev and add wasm specific tools
Signed-off-by: James Sturtevant <[email protected]>
1 parent 518b702 commit 6d64d51

File tree

1 file changed

+9
-52
lines changed

1 file changed

+9
-52
lines changed

.devcontainer/Dockerfile

Lines changed: 9 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,15 @@
11
## Dockerfile for devcontainer
22

3-
FROM mcr.microsoft.com/devcontainers/base:debian AS base
4-
3+
FROM ghcr.io/hyperlight-dev/hyperlight-devcontainer:latest
54
ARG USER=vscode
65
ARG GROUP=vscode
76

8-
ENV HOME="/home/${USER}"
9-
ENV PATH="$HOME/.cargo/bin:$PATH"
7+
# use root to install tools then switch back to vscode user
8+
USER root
109

1110
# Install dependencies
1211
RUN apt-get update \
1312
&& apt-get -y install \
14-
build-essential \
15-
cmake \
16-
curl \
17-
gdb \
18-
git \
19-
gnupg \
20-
gnuplot \
21-
lsb-release \
22-
make \
23-
software-properties-common \
24-
sudo \
25-
wget \
2613
netcat-openbsd
2714

2815
ARG GCC_VERSION=12
@@ -31,51 +18,21 @@ RUN apt-get install -y g++-multilib \
3118
&& apt-get install -y libgcc-${GCC_VERSION}-dev \
3219
&& apt-get install -y lib32gcc-${GCC_VERSION}-dev
3320

34-
ARG LLVM_VERSION=17
35-
36-
# Install llvm
37-
RUN wget https://apt.llvm.org/llvm.sh \
38-
&& chmod +x ./llvm.sh \
39-
&& sudo ./llvm.sh ${LLVM_VERSION} all \
40-
&& sudo ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/clang-cl /usr/bin/clang-cl \
41-
&& sudo ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/llvm-lib /usr/bin/llvm-lib \
42-
&& sudo ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/lld-link /usr/bin/lld-link \
43-
&& sudo ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/llvm-ml /usr/bin/llvm-ml \
44-
&& sudo ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/ld.lld /usr/bin/ld.lld \
45-
&& sudo ln -s /usr/lib/llvm-${LLVM_VERSION}/bin/clang /usr/bin/clang
46-
47-
FROM base AS dev
48-
49-
# Make sure the devcontainer user has sudo access
50-
RUN chown -R "${USER}:${GROUP}" /home/${USER} \
51-
&& echo "${USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
52-
53-
# Persist bash history
54-
RUN SNIPPET="export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" \
55-
&& mkdir /commandhistory \
56-
&& touch /commandhistory/.bash_history \
57-
&& chown -R "${USER}" /commandhistory \
58-
&& echo "$SNIPPET" >> "/home/${USER}/.bashrc"
59-
# Install python3
6021
ARG WASI_SDK_VERSION_FULL=20.0
6122
ARG WASI_SDK_VERSION_MAJOR=${WASI_SDK_VERSION_FULL%%.*}
23+
6224
# Install wasi-sdk
6325
RUN wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION_MAJOR}/wasi-sdk-${WASI_SDK_VERSION_FULL}-linux.tar.gz \
6426
&& tar xvf wasi-sdk-${WASI_SDK_VERSION_FULL}-linux.tar.gz \
6527
&& rm wasi-sdk-${WASI_SDK_VERSION_FULL}-linux.tar.gz \
6628
&& mv /wasi-sdk-${WASI_SDK_VERSION_FULL} /opt/wasi-sdk
6729

6830
USER $USER
69-
7031
ARG RUST_TOOLCHAIN=1.82.0
7132

72-
# Install rust
73-
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
74-
&& rustup default ${RUST_TOOLCHAIN} \
75-
&& rustup target add x86_64-unknown-linux-gnu \
76-
&& rustup target add x86_64-unknown-none \
77-
&& rustup target add x86_64-pc-windows-msvc \
78-
&& rustup toolchain add nightly-x86_64-unknown-linux-gnu \
79-
&& cargo install just \
33+
# Install rust and component tools
34+
RUN rustup default ${RUST_TOOLCHAIN} \
8035
&& cargo install --locked wasm-tools \
81-
&& cargo install wkg
36+
&& cargo install wkg \
37+
&& cargo install wac-cli \
38+
&& cargo install cargo-component --locked

0 commit comments

Comments
 (0)