Compare commits

...

12 Commits

Author SHA1 Message Date
0cb3781ba5 Merge 7784559b85 into dd237ec16e 2025-04-21 13:54:51 +00:00
dd237ec16e Merge pull request #430 from caspermeijn/healthcheck
Add healthcheck to image
2025-04-20 12:58:45 +02:00
84756ac1fd Merge pull request #439 from deviantintegral/add-opcache
Install the opcache extension #162
2025-04-17 09:10:15 +02:00
60ce6d2e4f Install the opcache extension #162 2025-04-16 21:01:34 -04:00
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
52afa94c77 Prepare 2.6.12 release 2025-04-10 12:08:12 +02:00
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
3975a28546 Prepare 2.6.11 release 2025-03-30 06:38:09 +02:00
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
7784559b85 Run migrations when installing
This throws errors, but they can be ignored.
2023-12-30 17:40:40 -08:00
4d52431c95 Check if tables exist before installing
This works better than checking just the database, because it could be
that an empty database has already been created (with e.g. Docker
Compose).

TABLES_EXIST should be empty if no tables, or will return a 1
for *each* table that exists.
2023-12-30 17:39:24 -08:00
64d2a60888 Move user create outside of database-exists check 2023-12-25 10:24:57 -08:00
3 changed files with 17 additions and 11 deletions

View File

@ -13,7 +13,7 @@ FROM alpine:3.18
COPY --from=builder /go/bin/envsubst /usr/bin/envsubst
ARG WALLABAG_VERSION=2.6.10
ARG WALLABAG_VERSION=2.6.12
RUN set -ex \
&& apk add --no-cache \
@ -32,6 +32,7 @@ RUN set -ex \
php81-iconv \
php81-json \
php81-mbstring \
php81-opcache \
php81-openssl \
php81-pecl-amqp \
php81-pecl-imagick \
@ -83,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

@ -131,10 +131,6 @@ services:
- "80"
volumes:
- /opt/wallabag/images:/var/www/wallabag/web/assets/images
healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
interval: 1m
timeout: 3s
depends_on:
- db
- redis

View File

@ -74,18 +74,25 @@ provisioner() {
# Configure Postgres database
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_pgsql" ] && [ "$POPULATE_DATABASE" = "True" ] && [ "$POSTGRES_PASSWORD" != "" ] ; then
export PGPASSWORD="${POSTGRES_PASSWORD}"
USER_EXISTS="$(psql -qAt -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "SELECT 1 FROM pg_roles WHERE rolname = '${SYMFONY__ENV__DATABASE_USER}';")"
if [ "$USER_EXISTS" != "1" ]; then
psql -q -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "CREATE ROLE ${SYMFONY__ENV__DATABASE_USER} with PASSWORD '${SYMFONY__ENV__DATABASE_PASSWORD}' LOGIN;"
fi
DATABASE_EXISTS="$(psql -qAt -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "SELECT 1 FROM pg_catalog.pg_database WHERE datname = '${SYMFONY__ENV__DATABASE_NAME}';")"
if [ "$DATABASE_EXISTS" != "1" ]; then
echo "Configuring the Postgres database ..."
psql -q -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "CREATE DATABASE ${SYMFONY__ENV__DATABASE_NAME};"
USER_EXISTS="$(psql -qAt -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "SELECT 1 FROM pg_roles WHERE rolname = '${SYMFONY__ENV__DATABASE_USER}';")"
if [ "$USER_EXISTS" != "1" ]; then
psql -q -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "CREATE ROLE ${SYMFONY__ENV__DATABASE_USER} with PASSWORD '${SYMFONY__ENV__DATABASE_PASSWORD}' LOGIN;"
fi
fi
TABLES_EXIST="$(psql -qAt -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \
-c "SELECT 1 FROM pg_catalog.pg_tables WHERE schemaname = 'public';")"
if [ "$TABLES_EXIST" == "" ]; then
echo "Installing Wallabag ..."
exec su -c "bin/console doctrine:migrations:migrate --env=prod --no-interaction" -s /bin/sh nobody
install_wallabag
else
echo "WARN: Postgres database is already configured. Remove the environment variable with root password."