1
0
mirror of https://github.com/wallabag/docker synced 2025-12-13 17:56:31 +00:00

59 Commits

Author SHA1 Message Date
Nicolas Lœuillet
096ea7f79c Merge pull request #443 from wallabag/release-2613
Prepare 2.6.13 release
2025-06-04 17:48:01 +02:00
Nicolas Lœuillet
2c1ec84dc7 Prepare 2.6.13 release 2025-06-04 17:37:11 +02:00
Kevin Decherf
488814d187 Merge pull request #440 from wallabag/impr/nginx-dualstack
Support dualstack listen on nginx
2025-04-29 22:56:19 +02:00
Kevin Decherf
3808b524fc Support dualstack listen on nginx
Fixes #422
Supersedes #435

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2025-04-20 17:22:46 +02:00
Kevin Decherf
dd237ec16e Merge pull request #430 from caspermeijn/healthcheck
Add healthcheck to image
2025-04-20 12:58:45 +02:00
Jérémy Benoist
84756ac1fd Merge pull request #439 from deviantintegral/add-opcache
Install the opcache extension #162
2025-04-17 09:10:15 +02:00
Andrew Berry
60ce6d2e4f Install the opcache extension #162 2025-04-16 21:01:34 -04:00
Yassine Guedidi
b228deb919 Merge pull request #437 from wallabag/prepare-2.6.12-release
Prepare 2.6.12 release
2025-04-10 13:55:21 +02:00
Yassine Guedidi
52afa94c77 Prepare 2.6.12 release 2025-04-10 12:08:12 +02:00
Yassine Guedidi
55976e23e5 Merge pull request #436 from wallabag/prepare-2.6.11-release
Prepare 2.6.11 release
2025-04-08 23:09:59 +02:00
Yassine Guedidi
3975a28546 Prepare 2.6.11 release 2025-03-30 06:38:09 +02:00
Kevin Decherf
0e58189b97 Merge pull request #431 from Luensche/patch-1
Update README.md
2025-01-23 20:11:14 +01:00
Björn Engel
2d96e30450 Update README.md
Version in docker-compose.yaml is obsolete.
2025-01-07 21:40:29 +01:00
Casper Meijn
424642d3b9 Add healthcheck to image
- Move the healthcheck from the docker-compose example to the actual image. That makes sure all user of the image automatically get the healthcheck.
- Change to `curl --fail || exit 1` as suggested in [docker documentation](https://docs.docker.com/reference/dockerfile/#healthcheck)
- Add `--silent --show-error` so that docker health state contains the output of the HTTP call instead of curl progress bar
- Set the user agent to make the logs more readable
2024-12-24 16:56:22 +01:00
Kevin Decherf
364b1b3d84 Merge pull request #428 from wallabag/2.6.x
Backport 2.6.10 into master
2024-11-19 21:10:09 +01:00
Jérémy Benoist
d1c4800a3e Merge pull request #427 from wallabag/fix/update-ci
Update CI
2024-11-12 09:22:12 +01:00
Jeremy Benoist
4c3ff8a8ac Update CI
Allow dependabot to keep GA up to date.
2024-11-12 09:03:21 +01:00
Nicolas Lœuillet
c9104abfeb Merge pull request #424 from wallabag/release/2.6.10
Prepare 2.6.10 release
2024-11-03 16:00:52 +01:00
Nicolas Lœuillet
78d6d36e0c Prepare 2.6.10 release 2024-11-03 08:12:24 +01:00
Jérémy Benoist
2a78ed65fe Merge pull request #411 from wallabag/release/2.6.9
Prepare 2.6.9
2024-04-03 11:14:05 +02:00
Jérémy Benoist
cb78d1c98c Prepare 2.6.9
See https://github.com/wallabag/wallabag/releases/tag/2.6.9
2024-04-03 11:00:19 +02:00
Kevin Decherf
19b6080f31 Merge pull request #404 from wallabag/impr/phpini
Update shipped php.ini with php-production.ini from PHP 8.1
2024-03-11 12:51:25 +01:00
Kevin Decherf
85c82d22c4 Update shipped php.ini with php-production.ini from PHP 8.1
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-11 12:46:49 +01:00
Kevin Decherf
2ab5b95caf Merge pull request #405 from wallabag/impr/nginx
Update NGINX timeout to align with max_execution_time
2024-03-11 12:03:26 +01:00
Kevin Decherf
2c4fc77b58 Update NGINX timeout to align with max_execution_time
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-11 11:55:59 +01:00
Kevin Decherf
bffc1412bf Merge pull request #403 from wallabag/impr/memlimit
Add support of PHP memory limit in variables
2024-03-11 11:54:52 +01:00
Kevin Decherf
588c21b192 Add support of PHP memory limit in variables
Supersedes #374

Fixes #124

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-11 11:52:55 +01:00
Kevin Decherf
6f2ec8654e Merge branch 'master' into 2.6.x 2024-03-10 22:03:33 +01:00
Kevin Decherf
4143013553 Merge pull request #402 from wallabag/fix/sqlite
Fix SQLite provisioning
2024-03-10 21:59:54 +01:00
Kevin Decherf
eaf63d2098 Merge pull request #401 from wallabag/impr/doc
doc: change docker-compose healthcheck target
2024-03-10 21:59:31 +01:00
Kevin Decherf
9c6aca3b76 Fix SQLite provisioning
If we use a local folder volume binding, install_wallabag was failing
because of missing file and permission issues.

This reworks the way we initially create the database when it is missing
or empty.

Superseeds #386

Fixes #316 #346

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-10 16:21:31 +01:00
Kevin Decherf
e16d9e4113 doc: change docker-compose healthcheck target
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-10 16:20:26 +01:00
Kevin Decherf
03d1e3a920 Merge pull request #398 from neilbags/patch-1
Add restart: unless-stopped to example docker-compose
2024-03-10 14:11:08 +01:00
Neil McKenzie
7c9d8a37e0 Add restart: unless-stopped to example docker-compose
Most example docker-compose files include restart: unless-stopped or restart: always. This being absent on Wallabag's example leads to unexpected downtime upon server restart
2024-02-01 08:53:52 +11:00
Jérémy Benoist
bdbf7b909a Merge pull request #393 from wallabag/release/2.6.8
Prepare 2.6.8
2024-01-03 09:33:14 +01:00
Jérémy Benoist
bf62096c0e Prepare 2.6.8 2024-01-03 09:32:44 +01:00
Jérémy Benoist
f59fb4b67a Merge pull request #385 from markusnasholm/nginx_ipv6 2023-12-23 07:40:15 +01:00
Markus Näsholm
c68fc98e51 Update nginx.conf to work with IPv6 2023-10-05 20:20:45 +02:00
Jérémy Benoist
919f82516c Merge pull request #384 from wallabag/release/2.6.7
Prepare 2.6.7
2023-10-02 14:32:24 +02:00
Jérémy Benoist
2515407009 Prepare 2.6.7 2023-10-02 14:30:58 +02:00
Yassine Guedidi
96dd9bc3e3 Merge pull request #362 from yguedidi/build-assets
Use the release archive instead of the git archive
2023-09-27 22:34:42 +02:00
Yassine Guedidi
5bde344da3 Use the release archive instead of the git archive 2023-09-27 20:38:11 +02:00
Jérémy Benoist
36d4bf58db Merge pull request #378 from wallabag/impr/imagick
Use php81-pecl-imagick from default repository
2023-09-12 20:56:40 +02:00
Kevin Decherf
e7b0f9c7f6 Use php81-pecl-imagick from default repository
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2023-09-12 20:01:17 +02:00
Jérémy Benoist
5a426ce3fa Merge pull request #376 from itcbx/master 2023-09-11 07:14:38 +02:00
Chen BingXin
75d1b96cc8 Support for gif.
Add imagick extension to support gif.
2023-09-09 10:05:42 +08:00
Jérémy Benoist
9241c7d799 Merge pull request #375 from wallabag/release/2.6.6
Prepare 2.6.6
2023-09-07 09:29:54 +02:00
Jérémy Benoist
18d9f742fb Prepare 2.6.6 2023-09-07 09:29:14 +02:00
Jérémy Benoist
b5d9ba681c Merge pull request #372 from wallabag/release/2.6.5
2.6.5
2023-08-28 10:38:22 +02:00
Jérémy Benoist
b340aaee0a Merge pull request #371 from wallabag/revert-370-release-265
Revert "Update Dockerfile to release 2.6.5"
2023-08-28 10:38:07 +02:00
Jérémy Benoist
746c6e682b 2.6.5 2023-08-28 10:36:30 +02:00
Jérémy Benoist
d7e49fbda9 Revert "Update Dockerfile to release 2.6.5" 2023-08-28 10:35:58 +02:00
Nicolas Lœuillet
8a68a267ed Merge pull request #370 from wallabag/release-265
Update Dockerfile to release 2.6.5
2023-08-28 10:29:43 +02:00
Nicolas Lœuillet
4b00b7f383 Update Dockerfile to release 2.6.5 2023-08-28 10:27:16 +02:00
Nicolas Lœuillet
f1e3a0e2ae Merge pull request #357 from wallabag/change-default-fosuser-registration
Change public registration to false by default
2023-08-24 08:00:42 +02:00
Nicolas Lœuillet
c2b7c3bbd7 Fix test 2023-08-24 07:55:21 +02:00
Nicolas Lœuillet
7810ca6255 Change public registration to false by default 2023-08-24 07:55:21 +02:00
Nicolas Lœuillet
4f406f1f1f Merge pull request #365 from wallabag/nicosomb-patch-1
Update Dockerfile for 2.6.4
2023-08-22 15:50:15 +02:00
Nicolas Lœuillet
7edde03f39 Update Dockerfile for 2.6.4 2023-08-22 15:45:19 +02:00
11 changed files with 743 additions and 687 deletions

View File

@@ -12,3 +12,10 @@ updates:
versions:
- ">= 3.11.a"
- "< 3.12"
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 10

View File

@@ -13,16 +13,16 @@ jobs:
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -30,23 +30,23 @@ jobs:
# Documentation: https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
# Documentation: https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
wallabag/wallabag
ghcr.io/${{ github.repository }}
- name: Build and push Docker images
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
context: .
push: true

View File

@@ -24,17 +24,17 @@ jobs:
steps:
- name: "Checkout"
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: "Build image"
run: docker-compose -f tests/docker-compose.${{ matrix.database }}.yml build
run: docker compose -f tests/docker-compose.${{ matrix.database }}.yml build
- name: "Install dependencies"
run: pip install pytest pytest-docker requests
@@ -44,8 +44,8 @@ jobs:
- name: "Get docker logs"
if: ${{ always() }}
run: docker-compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml logs wallabag
run: docker compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml logs wallabag
- name: "Cleanup environment"
if: ${{ always() }}
run: docker-compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml down -v
run: docker compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml down -v

View File

@@ -13,7 +13,7 @@ FROM alpine:3.18
COPY --from=builder /go/bin/envsubst /usr/bin/envsubst
ARG WALLABAG_VERSION=2.6.3
ARG WALLABAG_VERSION=2.6.13
RUN set -ex \
&& apk add --no-cache \
@@ -32,8 +32,10 @@ RUN set -ex \
php81-iconv \
php81-json \
php81-mbstring \
php81-opcache \
php81-openssl \
php81-pecl-amqp \
php81-pecl-imagick \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
@@ -65,7 +67,7 @@ COPY --from=composer /usr/bin/composer /usr/local/bin/composer
COPY root /
RUN set -ex \
&& curl -L -o /tmp/wallabag.tar.gz https://github.com/wallabag/wallabag/archive/$WALLABAG_VERSION.tar.gz \
&& curl -L -o /tmp/wallabag.tar.gz https://github.com/wallabag/wallabag/releases/download/$WALLABAG_VERSION/wallabag-$WALLABAG_VERSION.tar.gz \
&& tar xvf /tmp/wallabag.tar.gz -C /tmp \
&& mkdir /var/www/wallabag \
&& mv /tmp/wallabag-*/* /var/www/wallabag/ \
@@ -82,6 +84,8 @@ ENV PATH="${PATH}:/var/www/wallabag/bin"
# Set console entry path
WORKDIR /var/www/wallabag
HEALTHCHECK CMD curl --fail --silent --show-error --user-agent healthcheck http://localhost/api/info || exit 1
EXPOSE 80
ENTRYPOINT ["/entrypoint.sh"]
CMD ["wallabag"]

View File

@@ -30,7 +30,7 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__MAILER_DSN=...` (defaults to "smtp://127.0.0.1")
- `-e SYMFONY__ENV__FROM_EMAIL=...`(defaults to "`wallabag@example.com`", the address wallabag uses for outgoing emails)
- `-e SYMFONY__ENV__TWOFACTOR_SENDER=...` (defaults to "`no-reply@wallabag.org`", the address wallabag uses for two-factor emails)
- `-e SYMFONY__ENV__FOSUSER_REGISTRATION=...`(defaults to "true", enable or disable public user registration)
- `-e SYMFONY__ENV__FOSUSER_REGISTRATION=...`(defaults to "false", enable or disable public user registration)
- `-e SYMFONY__ENV__FOSUSER_CONFIRMATION=...`(defaults to "true", enable or disable registration confirmation)
- `-e SYMFONY__ENV__DOMAIN_NAME=...` defaults to "`https://your-wallabag-instance.wallabag.org`", the URL of your wallabag instance)
- `-e SYMFONY__ENV__REDIS_SCHEME=...` (defaults to "tcp", protocol to use to communicate with the target server (tcp, unix, or http))
@@ -41,6 +41,7 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__SENTRY_DSN=...` (defaults to "~", this is the data source name for sentry)
- `-e POPULATE_DATABASE=...`(defaults to "True". Does the DB has to be populated or is it an existing one)
- `-e SYMFONY__ENV__SERVER_NAME=...` (defaults to "Your wallabag instance". Specifies a user-friendly name for the 2FA issuer)
- `-e PHP_MEMORY_LIMIT=...` (allows you to change the PHP `memory_limit` value. defaults to 128M, and should be a number and unit, eg. 512K, 128M, 2G, or a number of bytes)
## SQLite
@@ -108,10 +109,10 @@ $ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/con
An example [docker-compose](https://docs.docker.com/compose/) file can be seen below:
```
version: '3'
services:
wallabag:
image: wallabag/wallabag
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
@@ -130,15 +131,12 @@ services:
- "80"
volumes:
- /opt/wallabag/images:/var/www/wallabag/web/assets/images
healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
interval: 1m
timeout: 3s
depends_on:
- db
- redis
db:
image: mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
volumes:
@@ -149,6 +147,7 @@ services:
timeout: 3s
redis:
image: redis:alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 20s

View File

@@ -23,9 +23,12 @@ install_wallabag() {
provisioner() {
SYMFONY__ENV__DATABASE_DRIVER=${SYMFONY__ENV__DATABASE_DRIVER:-pdo_sqlite}
POPULATE_DATABASE=${POPULATE_DATABASE:-True}
SQLITE_DB_DIR="/var/www/wallabag/data/db"
SQLITE_DB_FILEPATH="$SQLITE_DB_DIR/wallabag.sqlite"
# Replace environment variables
envsubst < /etc/wallabag/parameters.template.yml > app/config/parameters.yml
envsubst < /etc/wallabag/php-wallabag.template.ini > /etc/php81/conf.d/50_wallabag.ini
# Wait for external database
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_mysql" ] || [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_pgsql" ] ; then
@@ -33,11 +36,18 @@ provisioner() {
fi
# Configure SQLite database
SQLITE_FILE_SIZE=$(wc -c "/var/www/wallabag/data/db/wallabag.sqlite" | awk '{print $1}')
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ] && ([ ! -f "/var/www/wallabag/data/db/wallabag.sqlite" ] || [ "$SQLITE_FILE_SIZE" = 0 ]) ; then
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ]; then
# mkdir and chown are mandatory for local folder binding
if [ ! -f "$SQLITE_DB_FILEPATH" ]; then
mkdir -p "$SQLITE_DB_DIR"
chown nobody: "$SQLITE_DB_DIR"
fi
if [ ! -s "$SQLITE_DB_FILEPATH" ]; then
echo "Configuring the SQLite database ..."
install_wallabag
fi
fi
# Configure MySQL / MariaDB database
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_mysql" ] && [ "$POPULATE_DATABASE" = "True" ] && [ "$MYSQL_ROOT_PASSWORD" != "" ] ; then

View File

@@ -35,7 +35,7 @@ http {
}
server {
listen 80;
listen [::]:80 ipv6only=off;
server_name _;
root /var/www/wallabag/web;
@@ -57,6 +57,7 @@ http {
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_read_timeout 300s;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@ parameters:
twofactor_sender: ${SYMFONY__ENV__TWOFACTOR_SENDER:-no-reply@wallabag.org}
# fosuser stuff
fosuser_registration: ${SYMFONY__ENV__FOSUSER_REGISTRATION:-true}
fosuser_registration: ${SYMFONY__ENV__FOSUSER_REGISTRATION:-false}
fosuser_confirmation: ${SYMFONY__ENV__FOSUSER_CONFIRMATION:-true}
# how long the access token should live in seconds for the API

View File

@@ -0,0 +1 @@
memory_limit = ${PHP_MEMORY_LIMIT:-128M}

View File

@@ -28,7 +28,7 @@ def docker_cleanup():
@pytest.fixture(scope="session")
def docker_compose_command() -> str:
return "docker-compose"
return "docker compose"
@pytest.fixture(scope="session")
def docker_compose_file(pytestconfig, database):
@@ -52,7 +52,6 @@ def test_accessing_login_page(wallabag_service):
assert r.status_code == 200
assert 'Log in' in r.text
assert 'Password' in r.text
assert 'Register' in r.text
assert 'Username' in r.text