-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathDockerfile
49 lines (38 loc) · 1.16 KB
/
Dockerfile
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
FROM mambaorg/micromamba
USER root
WORKDIR /lilo
COPY . /lilo
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
# Update default packages
RUN apt-get -qq update
# Get Ubuntu packages
RUN apt-get install -y -q \
build-essential \
curl \
libzmq3-dev \
libcairo2-dev \
pkg-config
# Install OCaml
RUN apt-get install -y -q \
ocaml \
opam
RUN opam init --disable-sandboxing --yes
# Build the DreamCoder OCaml binaries
WORKDIR /lilo/dreamcoder
RUN make setup-ocaml
RUN make
WORKDIR /lilo
# Install Rust
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
# Install lilo environment with micromamba
RUN micromamba create -y -n lilo -f environment.yml
# Make RUN commands use the new environment:
RUN echo "micromamba activate lilo" >> ~/.bashrc
SHELL ["/bin/bash", "--login", "-c"]
# One-off install of pregex
# (Technically requires Python 3.9+ but in practice compatible with Python 3.7)
RUN python3 -m pip install pregex==1.0.0 --ignore-requires-python