Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ jobs:
- ubuntu-2204-lts
gap-build:
- bare
- full
gap-version:
- 4.14.0
- 4.13.1
Expand Down
91 changes: 77 additions & 14 deletions src/dockerfiles/ubuntu-2204-lts/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ ARG PACKAGE_MANAGER_VERSION="1.6.2"
## }}}

## {{{
ARG GAP_TARBALL_NAME="gap-${GAP_VERSION}-core.tar.gz"
ARG GAP_CORE_TARBALL_NAME="gap-${GAP_VERSION}-core.tar.gz"
ARG GAP_CORE_DOWNLOAD_URL="https://github.com/gap-system/gap/releases/download/v${GAP_VERSION}/${GAP_CORE_TARBALL_NAME}"

ARG GAP_TARBALL_NAME="gap-${GAP_VERSION}.tar.gz"
ARG GAP_DOWNLOAD_URL="https://github.com/gap-system/gap/releases/download/v${GAP_VERSION}/${GAP_TARBALL_NAME}"
## }}}

Expand All @@ -22,9 +25,6 @@ ARG PACKAGE_MANAGER_TARBALL_NAME="PackageManager-${PACKAGE_MANAGER_VERSION}.tar.
ARG PACKAGE_MANAGER_DOWNLOAD_URL="https://github.com/gap-packages/PackageManager/releases/download/v${PACKAGE_MANAGER_VERSION}/${PACKAGE_MANAGER_TARBALL_NAME}"
## }}}




FROM ubuntu:22.04 AS base
ARG GAP_USER_GID
ARG GAP_USER_GROUPNAME
Expand All @@ -35,40 +35,43 @@ ARG GAP_USER_HOMEDIR
RUN groupadd --system --gid ${GAP_USER_GID} ${GAP_USER_GROUPNAME} && \
useradd --system --gid ${GAP_USER_GID} --home-dir ${GAP_USER_HOMEDIR} --create-home ${GAP_USER_USERNAME}

RUN apt-get update --yes && \
apt-get install --no-install-recommends --quiet --yes \
ca-certificates \
curl \
git \
unzip


FROM base AS buildbare
ARG GAP_VERSION
ARG GAP_DOWNLOAD_URL
ARG GAP_TARBALL_NAME
ARG GAP_CORE_DOWNLOAD_URL
ARG GAP_CORE_TARBALL_NAME
ARG GAP_USER_HOMEDIR
ARG GAP_USER_USERNAME
ARG GAP_USER_GROUPNAME

RUN apt-get update --yes && \
apt-get install --no-install-recommends --quiet --yes \
autoconf \
curl \
build-essential \
cmake \
zlib1g-dev \
libgmp-dev \
libncurses-dev \
libreadline-dev \
libtool \
m4 \
unzip
m4

USER ${GAP_USER_USERNAME}
WORKDIR ${GAP_USER_HOMEDIR}
ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_DOWNLOAD_URL} ./
RUN tar -xzf ${GAP_TARBALL_NAME}
ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_CORE_DOWNLOAD_URL} ./
RUN tar -xzf ${GAP_CORE_TARBALL_NAME}

WORKDIR "./gap-${GAP_VERSION}"
RUN ./configure && MAKEFLAGS=-j8 make


FROM base AS bare

ARG GAP_VERSION
ARG GAP_USER_HOMEDIR
ARG GAP_USER_USERNAME
Expand Down Expand Up @@ -104,6 +107,66 @@ COPY --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} --from=buildbare "${GAP_
ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${PACKAGE_MANAGER_DOWNLOAD_URL} ./
RUN tar -xvf ${PACKAGE_MANAGER_TARBALL_NAME} -C "$HOME/.gap/pkg"
RUN echo 'LoadPackage("PackageManager"); UpdatePackage("PackageManager", false); QuitGap(InstallRequiredPackages());' | gap --bare
CMD [ "bash" ]


CMD [ "bash" ]
FROM base AS buildfull
ARG GAP_VERSION
ARG GAP_DOWNLOAD_URL
ARG GAP_TARBALL_NAME
ARG GAP_USER_HOMEDIR
ARG GAP_USER_USERNAME
ARG GAP_USER_GROUPNAME

RUN apt-get update --yes && \
apt-get install --no-install-recommends --quiet --yes \
autoconf \
build-essential \
cmake \
zlib1g-dev \
libgmp-dev \
libncurses-dev \
libreadline-dev \
libtool \
m4

USER ${GAP_USER_USERNAME}
WORKDIR ${GAP_USER_HOMEDIR}
ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${GAP_DOWNLOAD_URL} ./
RUN tar -xzf ${GAP_TARBALL_NAME}

WORKDIR "./gap-${GAP_VERSION}"
RUN ./configure && MAKEFLAGS=-j8 make

FROM base AS full

ARG GAP_VERSION
ARG GAP_USER_HOMEDIR
ARG GAP_USER_USERNAME
ARG GAP_USER_GROUPNAME
ARG PACKAGE_MANAGER_TARBALL_NAME
ARG PACKAGE_MANAGER_DOWNLOAD_URL

ENV PATH="${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/:${PATH}"
ENV LD_LIBRARY_PATH="${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/lib"

RUN apt-get update --yes && \
apt-get install --no-install-recommends --quiet --yes \
4ti2 \
libcdd0d \
libcurl4 \
libgmp10 \
libmpc3 \
libmpfi0 \
libmpfr6 \
libncurses5 \
libreadline8 \
libzmq5 \
pari-gp \
singular \
zlib1g

USER ${GAP_USER_USERNAME}

COPY --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} --from=buildfull "${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}/" "${GAP_USER_HOMEDIR}/gap-${GAP_VERSION}//"
CMD [ "bash" ]
Loading