Skip to content

Commit 8c14548

Browse files
committed
use more modern syntax, upgrade to php 8.3, setup dependabot
1 parent 3268bac commit 8c14548

File tree

3 files changed

+36
-25
lines changed

3 files changed

+36
-25
lines changed

Dockerfile

+29-25
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,51 @@
1-
# syntax=docker/dockerfile:1
1+
# syntax=docker/dockerfile:1.9@sha256:5510f694edfe648d961b59dcf217026485e560d2663c73e45067b8c8d7a6d247
22

33
### Stage 1: build client
4-
FROM node:20 as client-builder
4+
FROM node:20 AS client-builder
55
WORKDIR /client-builder
66

77
# Install node packages
8-
COPY package.json .
9-
COPY client/package.json client/
10-
COPY client/package-lock.json client/
11-
RUN npm run install-dependencies:client
8+
RUN --mount=type=bind,source=package.json,target=package.json \
9+
--mount=type=bind,source=client/package.json,target=client/package.json \
10+
--mount=type=bind,source=client/package-lock.json,target=client/package-lock.json \
11+
--mount=type=cache,sharing=locked,id=npmcache,mode=0777,target=/root/.npm \
12+
npm run install-dependencies-ci:client
1213

1314
# Build client
1415
COPY client/ client/
15-
RUN npm run build
16+
RUN --mount=type=bind,source=package.json,target=package.json \
17+
--mount=type=bind,source=client/package.json,target=client/package.json \
18+
--mount=type=bind,source=client/package-lock.json,target=client/package-lock.json \
19+
--mount=type=cache,sharing=locked,id=npmcache,mode=0777,target=/root/.npm \
20+
npm run build
1621

1722

1823
### Stage 2: final container
19-
FROM php:8.2-apache
24+
FROM php:8.3-apache
2025
# Install runtime & development package dependencies & php extensions
2126
# then clean-up dev package dependencies
2227
RUN export DEBIAN_FRONTEND=noninteractive \
23-
&& apt update \
24-
&& apt install -y --no-install-recommends \
25-
unzip \
26-
libjpeg62-turbo libpng16-16 libpq5 libonig5 libtidy5deb1 \
27-
libjpeg62-turbo-dev libpng-dev libpq-dev libonig-dev libtidy-dev \
28-
&& update-ca-certificates --fresh \
29-
&& docker-php-ext-configure gd --with-jpeg \
30-
&& docker-php-ext-install gd mbstring pdo_pgsql pdo_mysql tidy \
31-
&& apt remove -y libjpeg62-turbo-dev libpng-dev libpq-dev libonig-dev libtidy-dev \
32-
&& apt autoremove -y \
33-
&& apt clean \
34-
&& rm -rf /var/lib/apt/lists/*
28+
&& apt update \
29+
&& apt install -y --no-install-recommends \
30+
unzip \
31+
libjpeg62-turbo libpng16-16 libpq5 libonig5 libtidy5deb1 \
32+
libjpeg62-turbo-dev libpng-dev libpq-dev libonig-dev libtidy-dev \
33+
&& update-ca-certificates --fresh \
34+
&& docker-php-ext-configure gd --with-jpeg \
35+
&& docker-php-ext-install -j$(nproc) gd mbstring pdo_pgsql pdo_mysql tidy \
36+
&& apt remove -y libjpeg62-turbo-dev libpng-dev libpq-dev libonig-dev libtidy-dev \
37+
&& apt autoremove -y \
38+
&& apt clean \
39+
&& rm -rf /var/lib/apt/lists/*
3540

3641
# Install Apache modules
3742
RUN a2enmod headers rewrite
3843

3944
# Install Selfoss PHP dependencies
40-
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
41-
COPY composer.json .
42-
COPY composer.lock .
43-
RUN COMPOSER_ALLOW_SUPERUSER=1 composer install --optimize-autoloader --no-dev
44-
RUN rm /usr/bin/composer
45+
RUN --mount=type=bind,source=composer.json,target=composer.json \
46+
--mount=type=bind,source=composer.lock,target=composer.lock \
47+
--mount=type=bind,from=composer:2,source=/usr/bin/composer,target=/usr/bin/composer \
48+
COMPOSER_ALLOW_SUPERUSER=1 composer install --optimize-autoloader --no-dev
4549

4650
# Install Selfoss and copy frontend from the first stage
4751
WORKDIR /var/www/html

dependabot.yml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "docker"
4+
directory: "/"
5+
schedule:
6+
interval: "daily"

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"fix:helpers:cs": "black utils/ tests/",
3333
"install-dependencies": "npm run install-dependencies:client && npm run install-dependencies:server",
3434
"install-dependencies:client": "npm install --production=false --prefix client/",
35+
"install-dependencies-ci:client": "npm ci --production=false --prefix client/",
3536
"install-dependencies:server": "composer install --dev",
3637
"test:server": "composer run-script test",
3738
"test:integration": "python3 tests/integration/run.py",

0 commit comments

Comments
 (0)