bw-hspc-contest-env/sandbox/Dockerfile

50 lines
1.2 KiB
Docker

FROM ubuntu:22.04
# Setup
RUN mkdir sandbox
WORKDIR /app/sandbox
RUN apt-get update
RUN apt-get install curl -y
RUN apt-get install -y ca-certificates curl gnupg
RUN mkdir -p /etc/apt/keyrings
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
ENV NODE_MAJOR=20
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
RUN apt-get update
RUN apt-get install nodejs git openjdk-17-jdk-headless dotnet-sdk-7.0 build-essential cmake -y
ENV DOTNET_NOLOGO=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
RUN git config --global user.name "Admin"
RUN git config --global user.email noemail@example.com
# Prep Sandbox
WORKDIR /app/sandbox
COPY ./sandbox/package*.json ./
RUN npm install
COPY ./sandbox/ .
# Prep SubmissionRunner
WORKDIR /app
RUN mkdir shared
RUN mkdir shared/submissionRunner
WORKDIR /app/shared/submissionRunner
COPY ./shared/submissionRunner/package*.json .
RUN npm install
COPY ./shared/submissionRunner/ .
# Build/Run
WORKDIR /app/sandbox
RUN npm run build
RUN chmod +x ./docker/entry.sh
CMD ["./docker/entry.sh"]