Newer
Older

Louis
committed
ARG USERNAME=rustbuilder
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ARG RUST_VERSION
ARG NODE_VERSION
ENV RUST_VERSION=${RUST_VERSION:-1.82}
ENV NODE_VERSION=${NODE_VERSION:-22.11.0}

Louis
committed
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
RUN apt-get update && \
apt-get install -y sudo curl wget zip unzip make build-essential clang rustup libpq-dev libsqlite3-dev && \

Louis
committed
RUN echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME && \
chmod 0440 /etc/sudoers.d/$USERNAME
USER $USERNAME
ENV NVM_DIR=/home/${USERNAME}/.nvm
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION}
RUN . "$NVM_DIR/nvm.sh" && nvm use v${NODE_VERSION}
RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION}

Louis
committed
RUN rustup install $RUST_VERSION && \
rustup default $RUST_VERSION && \

Louis
committed
cargo install cargo-binstall junitify cargo-nextest
ENV PATH="${PATH}:/home/${USERNAME}/.cargo/bin:${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/"