-
Notifications
You must be signed in to change notification settings - Fork 18
/
Dockerfile.nsym
35 lines (27 loc) · 1.37 KB
/
Dockerfile.nsym
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
FROM ubuntu:22.04
ENV GOROOT=/usr/local/go
ENV PATH="$GOROOT/bin:$PATH"
ARG GO_VERSION=1.20.1
ARG GO_ARCHIVE="go${GO_VERSION}.linux-amd64.tar.gz"
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt-get update
RUN apt-get install -y curl wget unzip git cmake ninja-build clang llvm g++-aarch64-linux-gnu \
lld python3-pip file time python3-pkgconfig libgmp-dev opam
RUN wget "https://dl.google.com/go/${GO_ARCHIVE}" && tar -xvf $GO_ARCHIVE && \
mkdir $GOROOT && mv go/* $GOROOT && rm $GO_ARCHIVE
RUN opam init --auto-setup --yes --disable-sandboxing \
&& opam switch create 4.14.0 \
&& eval $(opam env --switch=4.14.0) \
&& opam install -y dune ppxlib ppx_deriving zarith odoc
# Dependencies for Cryptol-Air-Interface
# ghcup, ghc-8.10.7
# zlib: libghc-bzlib-dev zlib1g-dev
ADD ./NSym/scripts /lc/scripts
RUN /lc/scripts/docker_install.sh
ENV CRYPTOLPATH="../../../cryptol-specs:../../cryptol-specs:../cryptol-specs:../../spec:./spec"
# This container expects all files in the directory to be mounted or copied.
# The GitHub action will mount the workspace and set the working directory of the container.
# Another way to mount the files is: docker run -v `pwd`:`pwd` -w `pwd` <name>
ENTRYPOINT ["./NSym/scripts/docker_entrypoint.sh"]