1
- FROM ubuntu:22 .04
1
+ FROM ubuntu:24 .04
2
2
ENV DEBIAN_FRONTEND=noninteractive
3
- ENV PHPSUPPORTED="7.2 7.3 8.0 8.1 8.2 "
3
+ ENV PHPSUPPORTED="7.4 8.0 8.2 8.3 "
4
4
ENV APTINSTALL="apt install -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold"
5
5
RUN apt update && apt install -y \
6
6
acl make zip unzip apache2-utils bsdmainutils libcurl4-gnutls-dev \
7
7
libjsoncpp-dev libmagic-dev autoconf automake bats sudo debootstrap procps \
8
8
gcc g++ default-jre-headless default-jdk ghc fp-compiler libcgroup-dev \
9
- devscripts shellcheck nginx libboost-regex-dev \
10
- php8.1 php8.1-cli php8.1-gd php8.1-curl php8.1-mysql php8.1-gmp php8.1-zip php8.1-xml php8.1-mbstring php8.1-fpm php8.1-intl php8.1-pcov \
11
- # W3c test \
12
- httrack \
13
- # Visual regression browser \
14
- cutycapt xvfb openimageio-tools imagemagick \
9
+ devscripts shellcheck nginx libboost-regex-dev composer codespell \
10
+ php8.3 php8.3-cli php8.3-gd php8.3-curl php8.3-mysql php8.3-gmp php8.3-zip php8.3-xml php8.3-mbstring php8.3-fpm php8.3-intl php8.3-pcov \
15
11
# Submit client \
16
12
python3-requests python3-magic \
17
13
# Docs \
18
14
python3-sphinx python3-sphinx-rtd-theme rst2pdf fontconfig python3-yaml \
19
- texlive-latex-recommended texlive-latex-extra \
20
- texlive-fonts-recommended texlive-lang-european latexmk \
15
+ texlive-latex-recommended texlive-latex-extra texlive-lang-european latexmk \
21
16
# Misc gitlab things \
22
17
mariadb-client curl build-essential packaging-dev \
23
18
git python3-pip moreutils w3m python3-yaml \
24
19
# Things we'd have in the chroot \
25
- ca-certificates default-jre-headless pypy locales software-properties-common \
20
+ ca-certificates default-jre-headless pypy3 locales software-properties-common \
26
21
# W3c WCAG \
27
- npm libnss3 libcups2 libxss1 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libgtk-3-0 \
28
- # Code coverage for unit test
22
+ npm \
23
+ # Code coverage for unit test \
29
24
php-pear php-dev \
30
25
# Needed NPM packages \
31
- && npm install -g pa11y \
32
- # Needed python packages \
33
- && pip install codespell \
34
- && rm -rf /var/lib/apt/lists/*
35
-
36
- # Install composer
37
- RUN apt update && \
38
- apt install --no-install-recommends --no-install-suggests -y ca-certificates \
39
- && rm -rf /var/lib/apt/lists/* \
40
- && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php \
41
- && mv /composer.phar /usr/local/bin/composer
26
+ && npm install -g pa11y puppeteer
42
27
43
28
# Install needed global PHP modules
44
29
RUN composer -n require justinrainbow/json-schema
@@ -51,7 +36,8 @@ RUN add-apt-repository ppa:ondrej/php -y && apt update && \
51
36
for PACKAGE in $PACKAGES; do \
52
37
$APTINSTALL php${VERSION}-${PACKAGE#php*-}; \
53
38
done; \
54
- done && update-alternatives --set php /usr/bin/php8.1
39
+ done && update-alternatives --set php /usr/bin/php8.3 \
40
+ && rm -rf /var/lib/apt/lists/*
55
41
56
42
# Put the gitlab user in sudo
57
43
RUN echo 'ALL ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
@@ -61,6 +47,14 @@ RUN useradd -d /nonexistent -g nogroup -s /bin/false domjudge-run-0
61
47
RUN useradd -d /nonexistent -g nogroup -s /bin/false domjudge-run-1
62
48
RUN groupadd domjudge-run
63
49
50
+ # Download chrome for the domjudge user
51
+ RUN su domjudge -c "npx puppeteer browsers install chrome"
52
+
53
+ # Update dictionary to latest version
54
+ ENV GITHUBDICTIONARY="https://raw.githubusercontent.com/codespell-project/codespell/master/codespell_lib/data/dictionary.txt"
55
+ ENV CODESPELLDICTLOCATION="/usr/lib/python3/dist-packages/codespell_lib/data/dictionary.txt"
56
+ RUN wget $GITHUBDICTIONARY -O $CODESPELLDICTLOCATION
57
+
64
58
# Do some extra setup
65
59
RUN mkdir -p /run/php \
66
60
&& rm /etc/php/*/fpm/pool.d/www.conf
0 commit comments