@@ -13,7 +13,10 @@ ARG PACKAGE_MANAGER_VERSION="1.6.2"
1313# # }}}
1414
1515# # {{{
16- ARG GAP_TARBALL_NAME="gap-${GAP_VERSION}-core.tar.gz"
16+ ARG GAP_CORE_TARBALL_NAME="gap-${GAP_VERSION}-core.tar.gz"
17+ ARG GAP_CORE_DOWNLOAD_URL="https://github.com/gap-system/gap/releases/download/v${GAP_VERSION}/${GAP_CORE_TARBALL_NAME}"
18+
19+ ARG GAP_TARBALL_NAME="gap-${GAP_VERSION}.tar.gz"
1720ARG GAP_DOWNLOAD_URL="https://github.com/gap-system/gap/releases/download/v${GAP_VERSION}/${GAP_TARBALL_NAME}"
1821# # }}}
1922
@@ -22,9 +25,6 @@ ARG PACKAGE_MANAGER_TARBALL_NAME="PackageManager-${PACKAGE_MANAGER_VERSION}.tar.
2225ARG PACKAGE_MANAGER_DOWNLOAD_URL="https://github.com/gap-packages/PackageManager/releases/download/v${PACKAGE_MANAGER_VERSION}/${PACKAGE_MANAGER_TARBALL_NAME}"
2326# # }}}
2427
25-
26-
27-
2828FROM ubuntu:22.04 AS base
2929ARG GAP_USER_GID
3030ARG GAP_USER_GROUPNAME
@@ -35,40 +35,43 @@ ARG GAP_USER_HOMEDIR
3535RUN groupadd --system --gid ${GAP_USER_GID} ${GAP_USER_GROUPNAME} && \
3636 useradd --system --gid ${GAP_USER_GID} --home-dir ${GAP_USER_HOMEDIR} --create-home ${GAP_USER_USERNAME}
3737
38+ RUN apt-get update --yes && \
39+ apt-get install --no-install-recommends --quiet --yes \
40+ ca-certificates \
41+ curl \
42+ git \
43+ unzip
44+
3845
3946FROM base AS buildbare
4047ARG GAP_VERSION
41- ARG GAP_DOWNLOAD_URL
42- ARG GAP_TARBALL_NAME
48+ ARG GAP_CORE_DOWNLOAD_URL
49+ ARG GAP_CORE_TARBALL_NAME
4350ARG GAP_USER_HOMEDIR
4451ARG GAP_USER_USERNAME
4552ARG GAP_USER_GROUPNAME
4653
4754RUN apt-get update --yes && \
4855 apt-get install --no-install-recommends --quiet --yes \
4956 autoconf \
50- curl \
5157 build-essential \
5258 cmake \
5359 zlib1g-dev \
5460 libgmp-dev \
5561 libncurses-dev \
5662 libreadline-dev \
5763 libtool \
58- m4 \
59- unzip
64+ m4
6065
6166USER ${GAP_USER_USERNAME}
6267WORKDIR ${GAP_USER_HOMEDIR}
63- ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_DOWNLOAD_URL } ./
64- RUN tar -xzf ${GAP_TARBALL_NAME }
68+ ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_CORE_DOWNLOAD_URL } ./
69+ RUN tar -xzf ${GAP_CORE_TARBALL_NAME }
6570
6671WORKDIR "./gap-${GAP_VERSION}"
6772RUN ./configure && MAKEFLAGS=-j8 make
6873
69-
7074FROM base AS bare
71-
7275ARG GAP_VERSION
7376ARG GAP_USER_HOMEDIR
7477ARG GAP_USER_USERNAME
@@ -104,6 +107,66 @@ COPY --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} --from=buildbare "${GAP_
104107ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${PACKAGE_MANAGER_DOWNLOAD_URL} ./
105108RUN tar -xvf ${PACKAGE_MANAGER_TARBALL_NAME} -C "$HOME/.gap/pkg"
106109RUN echo 'LoadPackage("PackageManager"); UpdatePackage("PackageManager", false); QuitGap(InstallRequiredPackages());' | gap --bare
110+ CMD [ "bash" ]
107111
108112
109- CMD [ "bash" ]
113+ FROM base AS buildfull
114+ ARG GAP_VERSION
115+ ARG GAP_DOWNLOAD_URL
116+ ARG GAP_TARBALL_NAME
117+ ARG GAP_USER_HOMEDIR
118+ ARG GAP_USER_USERNAME
119+ ARG GAP_USER_GROUPNAME
120+
121+ RUN apt-get update --yes && \
122+ apt-get install --no-install-recommends --quiet --yes \
123+ autoconf \
124+ build-essential \
125+ cmake \
126+ zlib1g-dev \
127+ libgmp-dev \
128+ libncurses-dev \
129+ libreadline-dev \
130+ libtool \
131+ m4
132+
133+ USER ${GAP_USER_USERNAME}
134+ WORKDIR ${GAP_USER_HOMEDIR}
135+ ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_DOWNLOAD_URL} ./
136+ RUN tar -xzf ${GAP_TARBALL_NAME}
137+
138+ WORKDIR "./gap-${GAP_VERSION}"
139+ RUN ./configure && MAKEFLAGS=-j8 make
140+
141+ FROM base AS full
142+
143+ ARG GAP_VERSION
144+ ARG GAP_USER_HOMEDIR
145+ ARG GAP_USER_USERNAME
146+ ARG GAP_USER_GROUPNAME
147+ ARG PACKAGE_MANAGER_TARBALL_NAME
148+ ARG PACKAGE_MANAGER_DOWNLOAD_URL
149+
150+ ENV PATH="${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/:${PATH}"
151+ ENV LD_LIBRARY_PATH="${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/lib"
152+
153+ RUN apt-get update --yes && \
154+ apt-get install --no-install-recommends --quiet --yes \
155+ 4ti2 \
156+ libcdd0d \
157+ libcurl4 \
158+ libgmp10 \
159+ libmpc3 \
160+ libmpfi0 \
161+ libmpfr6 \
162+ libncurses5 \
163+ libreadline8 \
164+ libzmq5 \
165+ pari-gp \
166+ singular \
167+ zlib1g
168+
169+ USER ${GAP_USER_USERNAME}
170+
171+ COPY --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} --from=buildfull "${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/" "${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}//"
172+ CMD [ "bash" ]
0 commit comments