Commit Graph

45 Commits

Author SHA1 Message Date
Alexandre Alapetite
b66d4ade41 Improve Docker + compatibility Arch (#8299)
* Better comments in our Docker images
* Make `cli/access-permissions.sh` compatible with other Apache groups such as `http` for Linux Arch
* Better `/Docker/entrypoint.sh` supporting various Apache configuration paths (and slightly faster).
* Add test image for Linux Arch (not sure we will keep it)

See
* https://github.com/FreshRSS/FreshRSS/pull/8279#issuecomment-3620674818
2025-12-12 22:07:19 +01:00
Alexandre Alapetite
2e54352051 Docker: Alpine 3.23 (#8285)
https://alpinelinux.org/posts/Alpine-3.23.0-released.html
PHP 8.4.15, Apache/2.4.65
Dev Container updated from PHP 8.3.x to PHP 8.4.x.
2025-12-05 22:20:57 +01:00
Alexandre Alapetite
6c64e7b07b Docker CMD compatibility (#7861)
Some caller systems do not seem escape the CMD quotes correctly.
fix https://github.com/FreshRSS/FreshRSS/issues/7859#issuecomment-3225691432
fix https://github.com/FreshRSS/FreshRSS/discussions/5611
fix https://github.com/FreshRSS/FreshRSS/discussions/7267
2025-08-27 14:34:24 +02:00
Alexandre Alapetite
8f0d69efb2 Docker Alpine PHP 8.4 (#7803)
Force our Alpine-based Docker image to PHP 8.4 (default is still PHP 8.3).
Related to the fact that we may have to [revert our Debian image to Debian 12 with PHP 8.2 instead of Debian 13 with PHP 8.4](https://github.com/FreshRSS/FreshRSS/pull/7805), so for the next FreshRSS release, we can offer at least one image with PHP 8.4.
2025-08-09 19:14:48 +02:00
Carey Metcalfe
bb659ee27a Optimize how much data needs to be chown/chmoded on container startup (#7793)
* Optimize how much data needs to be `chown`/`chmod`ed on container startup

This works around an issue where `chmod`/`chown` operations inside a
container can be extremely slow when using the `overlay2` storage
driver, resulting in 10min+ container startup times.

It modifies the owner of the webapp when building the container so that
only the `data` and `extensions` directories (which are commonly mapped
as volumes into the container) have to be modified by the
`access-permissions.sh` script at container startup.

When not running via docker the behaviour of the `access-permissions.sh`
script is unchanged.

* Take DATA_PATH environment variable into account when fixing permissions

* Revert change to using bash for arrays

(the alpine image doesn't include `bash`)

* A few more improvements

* Slightly tweak reapply permissions variable

- lowercase to indicate it's not an env variable
- use 0/1 to address potentially-irrational paranoia about unset variables

* Remove conditional logic to skip reapplying permissions

Also documents why in a comment so it's not missed in the future.

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-08 13:36:57 +02:00
Alexandre Alapetite
430d4e898e Docker: Alpine 3.22 (#7627)
https://alpinelinux.org/posts/Alpine-3.22.0-released.html
PHP 8.3.21, Apache 2.4.63
2025-06-03 00:15:12 +02:00
Dezponia
df545b513b Add check for Apache mod_filter to ensure "AddOutputFilterByType" works. (#7419)
* Update .htaccess

Add check for Apache mod_filter to ensure "AddOutputFilterByType" works.

* Explicit enabling mod_filter in our Docker images

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-03-13 22:40:26 +01:00
Alexandre Alapetite
e025d17a17 Docker: Alpine 3.21 (#7070)
PHP 8.3.14, Apache/2.4.62
https://alpinelinux.org/posts/Alpine-3.21.0-released.html
2024-12-07 12:11:58 +01:00
Alexandre Alapetite
e165cf6b43 Docker LegacyKeyValueFormat (#6819)
* Docker LegacyKeyValueFormat
https://docs.docker.com/reference/build-checks/legacy-key-value-format/

* Also for devcontainer
2024-09-21 09:54:01 +02:00
Alexandre Alapetite
cdb9d4a5a8 Docker Alpine 3.20 (#6477)
https://alpinelinux.org/posts/Alpine-3.20.0-released.html
Moving from PHP 8.2.19 to PHP 8.3.7, still with Apache/2.4.59
2024-06-05 20:44:57 +02:00
Alexandre Alapetite
f7c160b9af Alpine 3.19 (#5933)
https://alpinelinux.org/posts/Alpine-3.19.0-released.html
Apache/2.4.58, PHP 8.2.13
2023-12-10 12:41:49 +01:00
Benjamin Reich
8f07199777 add multi arch docker build (#5808)
* Add multi arch container build

Co-authored-by: EdJoPaTo <rfc-conform-git-commit-email@funny-long-domain-label-everyone-hates-as-it-is-too-long.edjopato.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* using label from github action

* dont remove static labels and split docker readme in seperate action

* pin 3rd party action to a commit

* enable pushing to dockerhub

* Update .github/workflows/build-images.yml

Co-authored-by: EdJoPaTo <github@edjopato.de>

* remove not needed checkout

* set github token permissions

* Update .github/workflows/push-dockerhub-readme.yml

* update docker readme to match new tags

* Apply suggestions from code review

* fix suffix for alpine image

* fix suffix for alpine image

* push images only at upstream repo

* push images only at upstream repo

* push images only at upstream repo

* tag latest-alpine as alpine

* tag latest-alpine as alpine

* remove no needed falvor

* keep falvor for build

* Clean more things

* Rename action
To use same default name than https://github.com/actions/starter-workflows/blob/main/ci/docker-publish.yml

* Rename readme action
To use same default name than https://github.com/peter-evans/dockerhub-description/blob/main/.github/workflows/dockerhub-description.yml

* Use default name for dockerhub-description
https://github.com/peter-evans/dockerhub-description/blob/main/.github/workflows/dockerhub-description.yml
Plus minor wording

* Experiment with build-args

* Debug

* Add checkout back

* Revert back to metadata-action

* Remove quotes in version

* Try to fix variables

* Experiment with automatic label values again

* Delete last Docker Hub hooks

* Use only git SHA for org.opencontainers.image.revision
https://specs.opencontainers.org/image-spec/annotations/#pre-defined-annotation-keys

* Comment out semver for now
Might be enabled later if desired

* Enable major semver

---------

Co-authored-by: EdJoPaTo <rfc-conform-git-commit-email@funny-long-domain-label-everyone-hates-as-it-is-too-long.edjopato.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: EdJoPaTo <github@edjopato.de>
2023-11-05 22:46:01 +01:00
Alexandre Alapetite
e7689459f2 Rework trusted proxies (#5549)
* Rework trusted proxies
Fix https://github.com/FreshRSS/FreshRSS/issues/5502
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3226

New environment variable `TRUSTED_PROXY`: set to 0 to disable, or to a list of trusted IP ranges compatible with https://httpd.apache.org/docs/current/mod/mod_remoteip.html#remoteiptrustedproxy

New internal environment variable `CONN_REMOTE_ADDR` to remember the true IP address of the connection (e.g. last proxy), even when using mod_remoteip.

Current working setups should not observe any significant change.

* Minor whitespace

* Safer trusted sources during install
Rework of https://github.com/FreshRSS/FreshRSS/pull/5358
https://github.com/FreshRSS/FreshRSS/issues/5357

* Minor readme
2023-07-30 12:59:18 +02:00
Aaron Schif
58b254f9cb Add OpenID Connect (#5351)
* Add OIDC

* Update documentation.

* Update apache conf adding IfModule

* Use IfDefine for OIDC in apache conf

* Fix non-oidc support

* Fix typing

* Use IfDefine to enable OIDC

* Add OIDC support to all dockerfiles

* Re add apache Require option

* Fixes and documentation

* A few more fixes

* A bit more doc

* Change type of environment variable

* Update readme

* Correct apache config for OIDC support.

* Fix README formatting

* Update oidc control path

* Fix oidc endpoint being cached

* A bit more review

* Simplify ExpiresActive

* Add session refresh and improve caching

* Allow more different setups

* A bit more documentation

* A bit more readme

---------

Co-authored-by: Aaron Schif <aschif@netdevgroup.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: maTh <math-home@web.de>
2023-06-12 10:22:46 +02:00
Alexandre Alapetite
0292b2f1f3 Improve Dev Container (#5423)
* Improve Dev Container
PHPStan was failing in Dev Container

* Update Docker to Alpine Linux 3.18
* New DATA_PATH environment variable

* README
2023-05-28 18:03:34 +02:00
Alexandre Alapetite
97226dc8a6 Update Docker image Alpine 3.18 (#5383)
https://alpinelinux.org/posts/Alpine-3.18.0-released.html

Minor updates with Apache 2.4.57 and PHP 8.1.19
2023-05-10 23:54:49 +02:00
Alexandre Alapetite
543fa4e76c Docker uniform timezone behaviour (#4905)
* Docker Alpine timezone for :newest and :oldest
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/4903
Forgot the development images Newest and Oldest

* Uniform timezone behaviour

* shellcheck

* A bit more documentation
2022-11-30 20:45:40 +01:00
Alexandre Alapetite
60d626030d Docker Alpine time zone (#4903)
Allow setting the timezone with a `TZ` environment variable in our Alpine-based Docker images just like for our Debian-based Doker images.
See https://github.com/FreshRSS/FreshRSS/discussions/4898#discussioncomment-4245991
2022-11-28 18:02:33 +01:00
Alexandre Alapetite
be79c5a8e7 Docker Alpine 3.17 (#4886)
* Docker Alpine 3.17
Update alternative Docker image to Alpine 3.17 with PHP 8.1.12 (and still Apache 2.4.54)
https://alpinelinux.org/posts/Alpine-3.17.0-released.html

* Fix developer access rights
Put developer in www-data group
2022-11-23 22:40:41 +01:00
Alexandre Alapetite
a90d93979f Docker Alpine updates (#4420)
* Added PHP extensions `php-openssl`  (used by PHPMailer) and php-xml (used by SimplePie)
* Upgraded dev image `freshrss/freshrss:newest` to PHP 8.2.
2022-06-19 20:09:09 +02:00
Alexandre Alapetite
b4ff1e03dd Docker: Alpine 3.16 (#4391)
https://alpinelinux.org/posts/Alpine-3.16.0-released.html
Apache 2.4.53, PHP 8.0.19
2022-05-30 10:34:24 +02:00
Alexandre Alapetite
4cfeb96f3d Docker: Alpine 3.15 (#3996)
Alpine 3.15 with PHP 8.0.13 and Apache 2.4.51
https://alpinelinux.org/posts/Alpine-3.15.0-released.html
2021-11-27 12:31:51 +01:00
Alexandre Alapetite
81b00bd8aa Docker: Move logic to disable FreshRSS updates (#3973)
Should be done during build and not during entrypoint, to avoid modifying a potential volume (e.g. mounting the source code as a volume is used during development).
2021-11-14 23:25:27 +01:00
Alexandre Alapetite
d924fc5fbb Fix cron regression (#3933)
#fix https://github.com/FreshRSS/FreshRSS/pull/3927/files#r735146297
The path `/var/www/FreshRSS/` might be a Docker volume, breaking files created there during Docker build
2021-10-24 19:39:35 +02:00
Chris Francy
07e00c7681 Docker: don't add crontab unless needed. (#3927)
Adding the crontab as part of the image build makes it more complicated
to add custom entries to the crontab. Adjusting the image and entrypoint
to make it so that the crontab is only added when CRON_MIN is set
simplifies having a custom crontab.
2021-10-24 17:25:03 +02:00
Alexandre Alapetite
23158b83cd Alpine 3.14 (#3715)
https://alpinelinux.org/posts/Alpine-3.14.0-released.html
* Apache updated to Apache/2.4.48 (from 2.4.46) https://downloads.apache.org/httpd/CHANGES_2.4.48
* PHP updated to PHP 8.0.8 (from 8.0.2) https://www.php.net/ChangeLog-8.php#8.0.8
2021-07-24 22:17:44 +02:00
Alexandre Alapetite
bf639f9b98 Docker: Alpine 3.13 with PHP 8 (#3375)
* Docker: Alppine 3.13 with PHP 8

PHP 8.0.1, Apache 2.4.46
Bug https://bugs.php.net/bug.php?id=78681 fixed in Alpine, so workaround
removed from our Dockefile(s)
Supports MySQL 8+
#fix https://github.com/FreshRSS/FreshRSS/issues/3191

* Changelog

* Update CHANGELOG.md

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-01-16 19:39:15 +01:00
Alexandre Alapetite
69060cda33 Docker: Environment variable to change Apache port (#3343)
#fix https://github.com/FreshRSS/FreshRSS/issues/3341

New environment variable `LISTEN='0.0.0.0:8080'`

```
docker run -d --network host --uts host -e LISTEN='0.0.0.0:8080' -e
TZ=Europe/Paris --name freshrss   freshrss/freshrss
```
2021-01-07 23:32:39 +01:00
Alexandre Alapetite
9ab05c7f67 Docker: Use Apache remoteip (#3226)
#fix https://github.com/FreshRSS/FreshRSS/issues/3224
Log the client remote IP instead of the local proxy IP
https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html
2020-10-16 09:25:43 +02:00
Jucgshu
5eef40162c Remove Docker heathchecks (#3161)
* Update Dockerfile

Remove heathcheck

* Update Dockerfile-Alpine

Remove heathcheck

* Update Dockerfile-QEMU-ARM

Remove heathcheck
2020-08-30 10:10:49 +02:00
Alexandre Alapetite
0085b5e0c1 Docker Alpine 3.12 (#3025)
https://alpinelinux.org/posts/Alpine-3.12.0-released.html
With PHP 7.3.18 (from 7.3.17) (and Apache 2.4.43 unchanged).
No other significant change spotted
2020-06-01 13:13:12 +02:00
Marien Fressinaud
97881628eb tec: Add a make lint command in the Makefile (#2996) 2020-05-25 19:06:23 +02:00
Marien Fressinaud
6bc963569b tec: Add a test target to Makefile (#2725)
* tec: Add a test target to Makefile

Minor edit put php7-phar on third line

I try to keep on the third line the Alpine-specific PHP extensions (i.e.
that are not by default in Ubuntu), and in alphabetic order

Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>

* Allow to run make test without Docker
2019-12-29 13:55:45 +01:00
Alexandre Alapetite
ef062803ee Docker: Alpine Linux 3.11 (#2729)
https://alpinelinux.org/posts/Alpine-3.11.0-released.html
Apache/2.4.41 (unchanged), PHP 7.3.13 (updated from 7.3.11 when Alpine
3.10 was released, but unchanged since the latest build of 3.10)
2019-12-23 16:47:58 +01:00
Alexandre Alapetite
3c49986ec8 New environment variable COPY_LOG_TO_SYSLOG (#2591)
* New environment variable COPY_LOG_TO_SYSLOG

False by default.
Makes it easy to monitor all logs from Syslog or STDERR (e.g. docker
logs).

* Suggestion of native constants
2019-10-26 11:19:42 +02:00
Alexandre Alapetite
6cedeeeae5 Minz: New environment variable to control development mode (#2508)
* New environment variable to control development mode

Suggestion of new enviromnent variable, as discussed
https://github.com/FreshRSS/FreshRSS/pull/2492#issuecomment-523613920

* Update Docker/README.md

Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>

* Update Docker/README.md

Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>

* Update Docker/README.md

Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>

* Declare ENV in Dockerfile

Tested
2019-08-22 20:04:26 +02:00
Alexandre Alapetite
d09826c145 Docker Alpine opcache (#2498)
https://github.com/FreshRSS/FreshRSS/pull/2495#discussion_r315662184
https://php.net/ref.opcache
We need to retest the performances
https://github.com/FreshRSS/FreshRSS/pull/2205
2019-08-20 15:48:54 +02:00
Sandro Jäckel
4e0acf5296 Ignore JSON notation 2019-07-23 08:49:41 +02:00
Sandro Jäckel
71270e4d5c Replace curl healthcheck with pure php, apply haodlint suggestions (#2455)
Closes #2453
2019-07-22 15:26:55 +02:00
Alexandre Alapetite
0a297addc0 Add php-gmp for API in Ubuntu 32-bit (#2450)
And adjust slightly the HEALTHCHECK parameters for faster start in
Træfik
2019-07-21 12:49:29 +02:00
Alexandre Alapetite
8c2cf1b4dd Docker healthcheck+ labels (#2438)
* Add Docker labels

And try to fix the platform metadata for ARM, and add health check

* Execution rights

* Remove experimental features not supported by Docker Hub

"--squash" is only supported on a Docker daemon with experimental
features enabled. build hook failed! (1)

* Fix paths
2019-07-07 20:07:01 +02:00
Alexandre Alapetite
99e7816686 Update Docker Alpine to 3.10 2019-06-21 18:46:14 +02:00
Alexandre Alapetite
4599d171df Docker fix cron logs (#2329)
Fix environment variable bug
2019-04-02 21:47:57 +02:00
Alexandre Alapetite
32dd2e3c33 Docker better use of crontab (#2326)
Misc. from https://github.com/FreshRSS/FreshRSS/pull/2325
https://github.com/FreshRSS/FreshRSS/issues/2319
2019-04-02 14:21:34 +02:00
Alexandre Alapetite
fc8fb0a7ee Docker image alternative using Ubuntu (#2205)
* Docker image alternative using Ubuntu

Ubuntu seems to be faster, cf. e.g. PHPBench.
It is quite usual for Docker images to offer both a Debian/Ubuntu and an
Alpine version, so we could also do the same if there is any need.
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2202

* Only explicit use of Apache confs

Fix double-logging issue

* Explicit ServerTokens OS

Default Apache configuration in Ubuntu, which was removed when disabling all confs.
It is also the default Apache configuration in Alpine.

* Take advantage of syslog for actualization

Same than for Alpine
43ab629e27

* COPY_SYSLOG_TO_STDERR

Same as https://github.com/FreshRSS/FreshRSS/pull/2213

* Update to libapache2-mod-php instead of php-fpm

* Default to Ubuntu

Ubuntu mod-php wins, being ~14% faster than Ubuntu php-fpm (which was ~300% faster than Alpine mod-php)
2019-03-02 21:49:20 +01:00