1+ ARG PLATFORM="linux/arm64"
2+
3+ # # {{{
4+ ARG GAP_VERSION="4.13.1"
5+ # # }}}
6+
7+ # # {{{
8+ ARG GAP_USER_USERNAME="gap"
9+ ARG GAP_USER_GROUPNAME="gap"
10+ ARG GAP_USER_UID=1000
11+ ARG GAP_USER_GID=1000
12+ ARG GAP_USER_SHELL="/bin/bash"
13+ ARG GAP_USER_HOMEDIR="/opt/gap"
14+ # # }}}
15+
16+ # # {{{
17+ ARG GAP_DOWNLOAD_TARBALL_NAME="gap-${GAP_VERSION}.tar.gz"
18+ ARG GAP_DOWNLOAD_URL="https://github.com/gap-system/gap/releases/download/v${GAP_VERSION}/${GAP_DOWNLOAD_TARBALL_NAME}"
19+ # # }}}
20+
21+
22+
23+
24+ FROM --platform=${PLATFORM} ubuntu:22.04 AS base
25+ ARG GAP_USER_GID
26+ ARG GAP_USER_GROUPNAME
27+ ARG GAP_USER_UID
28+ ARG GAP_USER_USERNAME
29+ ARG GAP_USER_HOMEDIR
30+
31+ RUN cat > /etc/apt/apt.conf.d/99norecommend <<EOF
32+ APT::Install-Recommends "0" ;
33+ APT::Install-Suggests "0" ;
34+ EOF
35+
36+ RUN groupadd --system --gid ${GAP_USER_GID} ${GAP_USER_GROUPNAME} && \
37+ useradd --system --gid ${GAP_USER_GID} --home-dir ${GAP_USER_HOMEDIR} --create-home ${GAP_USER_USERNAME}
38+
39+
40+ FROM base AS build
41+ ARG GAP_VERSION
42+ ARG GAP_DOWNLOAD_URL
43+ ARG GAP_DOWNLOAD_TARBALL_NAME
44+ ARG GAP_USER_HOMEDIR
45+ ARG GAP_USER_USERNAME
46+ ARG GAP_USER_GROUPNAME
47+
48+ RUN apt-get update --yes && \
49+ apt-get install --no-install-recommends --quiet --yes \
50+ 4ti2 \
51+ pari-gp \
52+ autoconf \
53+ build-essential \
54+ libcdd-dev \
55+ libcurl4-openssl-dev \
56+ libfplll-dev \
57+ libgmp-dev \
58+ libmpc-dev \
59+ libmpfi-dev \
60+ libmpfr-dev \
61+ libncurses-dev \
62+ libreadline-dev \
63+ libzmq3-dev \
64+ singular \
65+ zlib1g-dev
66+
67+ USER ${GAP_USER_USERNAME}
68+ WORKDIR ${GAP_USER_HOMEDIR}
69+ ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_DOWNLOAD_URL} ./
70+ RUN tar -xzf ${GAP_DOWNLOAD_TARBALL_NAME}
71+
72+ WORKDIR "./gap-${GAP_VERSION}"
73+ RUN ./configure && \
74+ MAKEFLAGS=-j8 make
75+
76+ FROM base AS result
77+ ARG GAP_VERSION
78+ ARG GAP_USER_HOMEDIR
79+ ARG GAP_USER_USERNAME
80+ ARG GAP_USER_GROUPNAME
81+
82+ ENV PATH="${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/:${PATH}"
83+ ENV LD_LIBRARY_PATH="${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/lib"
84+
85+ RUN apt-get update --yes && \
86+ apt-get install --no-install-recommends --quiet --yes \
87+ 4ti2 \
88+ libcdd0d \
89+ libcurl4 \
90+ libgmp10 \
91+ libmpc3 \
92+ libmpfi0 \
93+ libmpfr6 \
94+ libncurses5 \
95+ libreadline8 \
96+ libzmq5 \
97+ pari-gp \
98+ singular \
99+ zlib1g
100+
101+ USER ${GAP_USER_USERNAME}
102+ COPY --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} --from=build "${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/" "${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}//"
103+
104+ CMD [ "bash" ]
0 commit comments