diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0c2dd78f..50043f6a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -12,15 +12,23 @@ updates: - package-ecosystem: "docker" # See documentation for possible values directory: "/web" # Location of package manifests schedule: - interval: "weekly" + interval: "weekly" - package-ecosystem: "docker" # See documentation for possible values directory: "/postorius" # Location of package manifests schedule: - interval: "weekly" + interval: "weekly" # Enable version updates for Actions - package-ecosystem: "github-actions" # Look for `.github/workflows` in the `root` directory directory: "/" # Check for updates once a week schedule: - interval: "weekly" + interval: "weekly" + - package-ecosystem: "pip" + directory: "/core" + schedule: + interval: "daily" + - package-ecosystem: "pip" + directory: "/web" + schedule: + interval: "daily" \ No newline at end of file diff --git a/core/Dockerfile b/core/Dockerfile index 291bedcf..eee00d23 100644 --- a/core/Dockerfile +++ b/core/Dockerfile @@ -4,6 +4,9 @@ FROM alpine:3.16.2 #Add startup script to container COPY docker-entrypoint.sh /usr/local/bin/ +# Add requirements file. +COPY requirements.txt /tmp/ + #Install all required packages, add user for executing mailman and set execution rights for startup script RUN --mount=type=cache,target=/root/.cache \ apk update \ @@ -15,10 +18,9 @@ RUN --mount=type=cache,target=/root/.cache \ && python3 -m pip install -U pip setuptools wheel \ && python3 -m pip install psycopg2 \ gunicorn==19.9.0 \ - mailman==3.3.6 \ - mailman-hyperkitty==1.2.0 \ pymysql \ 'sqlalchemy<1.4.0' \ + -r /tmp/requirements.txt \ && apk del build-deps \ && adduser -S mailman diff --git a/core/requirements.txt b/core/requirements.txt new file mode 100644 index 00000000..82133d81 --- /dev/null +++ b/core/requirements.txt @@ -0,0 +1,5 @@ +# This is a separate file from Dockerfile so that we can use dependabot +# for version updates that isn't supported for contents inside the +# Dockerfile. +mailman==3.3.4 +mailman-hyperkitty==1.1.0 \ No newline at end of file diff --git a/web/Dockerfile b/web/Dockerfile index 49d6acb1..0f38953f 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -5,6 +5,8 @@ FROM alpine:3.16.2 COPY mailman-web /opt/mailman-web # Add startup script to container COPY docker-entrypoint.sh /usr/local/bin/ +# Add requirements file. +COPY requirements.txt /tmp/ # Install packages and dependencies for postorius and hyperkitty Add user for # executing apps, change ownership for uwsgi+django files and set execution @@ -17,10 +19,7 @@ RUN --mount=type=cache,target=/root/.cache \ postgresql-client mysql-client py3-mysqlclient curl mailcap gettext \ python3 py3-pip xapian-core xapian-bindings-python3 libffi pcre-dev py-cryptography \ && python3 -m pip install -U 'Django<4.2' pip setuptools wheel \ - && pip install mailmanclient==3.3.4 \ - postorius==1.3.7 \ - hyperkitty==1.3.6 \ - django-mailman3==1.3.8 \ + && pip install -r /tmp/requirements.txt \ whoosh \ uwsgi \ 'psycopg2<2.9' \ diff --git a/web/requirements.txt b/web/requirements.txt new file mode 100644 index 00000000..20dc945d --- /dev/null +++ b/web/requirements.txt @@ -0,0 +1,4 @@ +mailmanclient==3.3.4 +postorius==1.3.7 +hyperkitty==1.3.6 +django-mailman3==1.3.8 \ No newline at end of file