Skip to content

Commit 245be75

Browse files
authored
feat: Add support to full-build (#52)
1 parent 9fe1d46 commit 245be75

File tree

2 files changed

+78
-14
lines changed

2 files changed

+78
-14
lines changed

.github/workflows/main.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
- ubuntu-2204-lts
3333
gap-build:
3434
- bare
35+
- full
3536
gap-version:
3637
- 4.14.0
3738
- 4.13.1

src/dockerfiles/ubuntu-2204-lts/Dockerfile

Lines changed: 77 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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"
1720
ARG 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.
2225
ARG 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-
2828
FROM ubuntu:22.04 AS base
2929
ARG GAP_USER_GID
3030
ARG GAP_USER_GROUPNAME
@@ -35,40 +35,43 @@ ARG GAP_USER_HOMEDIR
3535
RUN 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

3946
FROM base AS buildbare
4047
ARG GAP_VERSION
41-
ARG GAP_DOWNLOAD_URL
42-
ARG GAP_TARBALL_NAME
48+
ARG GAP_CORE_DOWNLOAD_URL
49+
ARG GAP_CORE_TARBALL_NAME
4350
ARG GAP_USER_HOMEDIR
4451
ARG GAP_USER_USERNAME
4552
ARG GAP_USER_GROUPNAME
4653

4754
RUN 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

6166
USER ${GAP_USER_USERNAME}
6267
WORKDIR ${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

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

69-
7074
FROM base AS bare
71-
7275
ARG GAP_VERSION
7376
ARG GAP_USER_HOMEDIR
7477
ARG GAP_USER_USERNAME
@@ -104,6 +107,66 @@ COPY --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} --from=buildbare "${GAP_
104107
ADD --chown=${GAP_USER_USERNAME}:${GAP_USER_GROUPNAME} ${PACKAGE_MANAGER_DOWNLOAD_URL} ./
105108
RUN tar -xvf ${PACKAGE_MANAGER_TARBALL_NAME} -C "$HOME/.gap/pkg"
106109
RUN 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

Comments
 (0)