[dockerfile] some improvements to CI dockerfile

parent 0e9e6482
# Optimising CI speed by using tips from https://blog.nimbleways.com/let-s-make-faster-gitlab-ci-cd-pipelines/ # Optimising CI speed by using tips from https://blog.nimbleways.com/let-s-make-faster-gitlab-ci-cd-pipelines/
#image: cgenie/gargantext:9.4.8 # podman build -t cgenie/gargantext:9.6.6 --pull -f devops/docker/Dockerfile .
image: adinapoli/gargantext:v3.5 image: cgenie/gargantext:9.6.6
#image: adinapoli/gargantext:v3.5
variables: variables:
STACK_ROOT: "${CI_PROJECT_DIR}/.stack-root" STACK_ROOT: "${CI_PROJECT_DIR}/.stack-root"
STACK_OPTS: "--system-ghc" STACK_OPTS: "--system-ghc"
STORE_DIR: "${CI_PROJECT_DIR}/.cabal" STORE_DIR: "${CI_PROJECT_DIR}/.cabal"
CABAL_DIR: "${CI_PROJECT_DIR}/.cabal" CABAL_DIR: "${CI_PROJECT_DIR}/.cabal"
CORENLP: "4.5.4" CORENLP: "4.5.8"
FF_USE_FASTZIP: "true" FF_USE_FASTZIP: "true"
ARTIFACT_COMPRESSION_LEVEL: "fast" ARTIFACT_COMPRESSION_LEVEL: "fast"
CACHE_COMPRESSION_LEVEL: "fast" CACHE_COMPRESSION_LEVEL: "fast"
......
...@@ -237,11 +237,11 @@ The CI is on gitlab and is controlled by the `.gitlab-ci.yml` file. ...@@ -237,11 +237,11 @@ The CI is on gitlab and is controlled by the `.gitlab-ci.yml` file.
The Docker image that is used can be built with: The Docker image that is used can be built with:
```shell ```shell
podman build -t cgenie/gargantext:9.4.8 -f ./devops/docker/Dockerfile --format=docker . podman build -t cgenie/gargantext:9.6.6 --pull -f ./devops/docker/Dockerfile --format=docker .
``` ```
or or
```shell ```shell
docker build -t cgenie/gargantext:9.4.8 -f ./devops/docker/Dockerfile . docker build -t cgenie/gargantext:9.6.6 --pull -f ./devops/docker/Dockerfile .
``` ```
NOTE: if podman/docker complains about not enough space, it's probably NOTE: if podman/docker complains about not enough space, it's probably
......
...@@ -3,16 +3,9 @@ FROM ubuntu:noble ...@@ -3,16 +3,9 @@ FROM ubuntu:noble
## NOTA BENE: In order for this to be built successfully, you have to run ./devops/coreNLP/build.sh first. ## NOTA BENE: In order for this to be built successfully, you have to run ./devops/coreNLP/build.sh first.
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
ARG GHC=9.6.6 #ARG GHC=9.6.6
ARG CORENLP=4.5.4 #ARG CORENLP=4.5.8
ARG CORE #ARG CORE
COPY ./shell.nix /builds/gargantext/shell.nix
COPY ./nix/pkgs.nix /builds/gargantext/nix/pkgs.nix
COPY ./nix/pinned-25.05.nix /builds/gargantext/nix/pinned-25.05.nix
COPY ./devops/coreNLP/build.sh /root/devops/coreNLP/build.sh
COPY ./devops/coreNLP/startServer.sh /root/devops/coreNLP/startServer.sh
COPY ./bin/setup-ci-environment /builds/gargantext/bin/setup-ci-environment
COPY ./bin/install-cabal2stack /builds/gargantext/bin/install-cabal2stack
ENV TZ=Europe/Rome ENV TZ=Europe/Rome
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
...@@ -30,7 +23,7 @@ RUN apt-get update && \ ...@@ -30,7 +23,7 @@ RUN apt-get update && \
build-essential \ build-essential \
ca-certificates \ ca-certificates \
curl \ curl \
gcc \ #gcc \
git \ git \
gnupg2 \ gnupg2 \
libffi-dev \ libffi-dev \
...@@ -44,13 +37,13 @@ RUN apt-get update && \ ...@@ -44,13 +37,13 @@ RUN apt-get update && \
locales \ locales \
lsb-release \ lsb-release \
software-properties-common \ software-properties-common \
strace \ #strace \
sudo \ sudo \
wget \ #wget \
vim \ #vim \
xz-utils \ xz-utils \
zlib1g-dev \ zlib1g-dev \
openjdk-21-jdk \ #openjdk-21-jdk \
unzip && \ unzip && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \ apt-get clean && rm -rf /var/lib/apt/lists/* && \
mkdir -m 0755 /nix && groupadd -r nixbld && chown root /nix && \ mkdir -m 0755 /nix && groupadd -r nixbld && chown root /nix && \
...@@ -60,8 +53,16 @@ RUN apt-get update && \ ...@@ -60,8 +53,16 @@ RUN apt-get update && \
SHELL ["/bin/bash", "-o", "pipefail", "-c"] SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN cd /root/devops/coreNLP; ./build.sh && \ COPY ./shell.nix /builds/gargantext/shell.nix
set -o pipefail && \ COPY ./nix/pkgs.nix /builds/gargantext/nix/pkgs.nix
COPY ./nix/pinned-25.05.nix /builds/gargantext/nix/pinned-25.05.nix
COPY ./devops/coreNLP/build.sh /root/devops/coreNLP/build.sh
COPY ./devops/coreNLP/startServer.sh /root/devops/coreNLP/startServer.sh
COPY ./bin/setup-ci-environment /builds/gargantext/bin/setup-ci-environment
COPY ./bin/install-cabal2stack /builds/gargantext/bin/install-cabal2stack
#RUN cd /root/devops/coreNLP; ./build.sh && \
RUN set -o pipefail && \
bash <(curl -L https://releases.nixos.org/nix/nix-2.26.2/install) --no-daemon && \ bash <(curl -L https://releases.nixos.org/nix/nix-2.26.2/install) --no-daemon && \
locale-gen en_US.UTF-8 && chown root -R /nix && \ locale-gen en_US.UTF-8 && chown root -R /nix && \
. "$HOME/.nix-profile/etc/profile.d/nix.sh" && \ . "$HOME/.nix-profile/etc/profile.d/nix.sh" && \
...@@ -69,7 +70,8 @@ RUN cd /root/devops/coreNLP; ./build.sh && \ ...@@ -69,7 +70,8 @@ RUN cd /root/devops/coreNLP; ./build.sh && \
echo "source $HOME/.nix-profile/etc/profile.d/nix.sh" >> "$HOME/.bashrc" && \ echo "source $HOME/.nix-profile/etc/profile.d/nix.sh" >> "$HOME/.bashrc" && \
echo `which nix-env` && \ echo `which nix-env` && \
. $HOME/.bashrc && nix-env --version && \ . $HOME/.bashrc && nix-env --version && \
cd /builds/gargantext && nix-shell --run "./bin/install-cabal2stack" cd /builds/gargantext && nix-shell --run "./bin/install-cabal2stack" && \
cd /root/devops/coreNLP && nix-shell -p jre --run "./build.sh"
WORKDIR "/builds/gargantext/" WORKDIR "/builds/gargantext/"
import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/c46290747b2aaf090f48a478270feb858837bf11.tar.gz") import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/c46290747b2aaf090f48a478270feb858837bf11.tar.gz")
# import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/02032da4af073d0f6110540c8677f16d4be0117f.tar.gz")
...@@ -104,6 +104,10 @@ rec { ...@@ -104,6 +104,10 @@ rec {
gsl gsl
#haskell-language-server #haskell-language-server
hlint hlint
icu
igraph_0_10_4
jre
lapack
libffi libffi
lapack lapack
xz xz
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment