3 Commits

Author SHA1 Message Date
51a129812a fix(drone): push branch to github
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-03 15:49:37 +02:00
1381fddb73 doc(README): add description of additional env vars
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-03 15:45:49 +02:00
5a58b50ad8 fix: rollback to v3.2.4
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-01 21:07:07 +02:00
7 changed files with 93 additions and 639 deletions

View File

@ -5,12 +5,13 @@ name: linter
platform: platform:
os: linux os: linux
arch: amd64
steps: steps:
- name: markdown lint - name: markdown lint
commands: commands:
- markdownlint *.md - markdownlint *.md
image: docker.io/volkerraschek/markdownlint:0.30.0 image: docker.io/tmknom/markdownlint:0.23.1
resources: resources:
limits: limits:
cpu: 50 cpu: 50
@ -40,11 +41,10 @@ trigger:
event: event:
exclude: exclude:
- tag - tag
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: dry-run-amd64 name: build-latest
platform: platform:
os: linux os: linux
@ -52,22 +52,40 @@ platform:
steps: steps:
- name: build - name: build
image: plugins/docker image: docker.io/volkerraschek/build-image:latest
settings: commands:
dockerfile: Dockerfile - make container-image/build
auto_tag: false
dry_run: true
tags: latest-amd64
repo: volkerraschek/markdownlint
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
no_cache: true
volumes: volumes:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
- name: push
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/push
environment:
POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
branch:
- master
repo:
- volker.raschek/postfixadmin-docker
- name: delete
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/delete
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
branch:
- master
- name: notify - name: notify
image: drillster/drone-email image: drillster/drone-email
environment: environment:
@ -89,145 +107,15 @@ volumes:
host: host:
path: /var/run/docker.sock path: /var/run/docker.sock
depends_on:
- linter
trigger: trigger:
branch:
exclude:
- master
event: event:
- pull_request exclude:
- push - tag
repo:
- volker.raschek/postfixadmin-docker
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: dry-run-arm-v7 name: build-tagged
platform:
os: linux
arch: arm
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: false
dry_run: true
tags: latest-arm-v7
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
no_cache: true
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
exclude:
- master
event:
- pull_request
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: dry-run-arm64-v8
platform:
os: linux
arch: arm64
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: false
dry_run: true
tags: latest-arm64-v8
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
no_cache: true
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
exclude:
- master
event:
- pull_request
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: latest-amd64
platform: platform:
os: linux os: linux
@ -235,247 +123,28 @@ platform:
steps: steps:
- name: build - name: build
image: plugins/docker image: docker.io/volkerraschek/build-image:latest
settings: commands:
dockerfile: Dockerfile - make container-image/build POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG}
auto_tag: false
tags: latest-amd64
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
no_cache: true
volumes: volumes:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
- name: notify - name: push
image: drillster/drone-email image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/push POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG}
environment: environment:
PLUGIN_HOST: POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: latest-arm-v7
platform:
os: linux
arch: arm
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: false
tags: latest-arm-v7
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
no_cache: true
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes: volumes:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
when:
status:
- changed
- failure
volumes: - name: delete
- name: docker_socket image: docker.io/volkerraschek/build-image:latest
host: commands:
path: /var/run/docker.sock - make container-image/delete POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG}
depends_on:
- linter
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: latest-arm64-v8
platform:
os: linux
arch: arm64
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: false
tags: latest-arm64-v8
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
no_cache: true
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: latest-manifest
steps:
- name: build-manifest
image: plugins/manifest
settings:
auto_tag: false
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
- name: notify
image: docker.io/drillster/drone-email:latest
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
depends_on:
- latest-amd64
- latest-arm-v7
- latest-arm64-v8
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: tagged-amd64
platform:
os: linux
arch: amd64
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: true
auto_tag_suffix: amd64
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
build_args:
- POSTFIXADMIN_VERSION=${DRONE_TAG}
no_cache: true
volumes: volumes:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
@ -506,165 +175,6 @@ trigger:
- tag - tag
repo: repo:
- volker.raschek/postfixadmin-docker - volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: tagged-arm-v7
platform:
os: linux
arch: arm
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: true
auto_tag_suffix: arm-v7
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
build_args:
- POSTFIXADMIN_VERSION=${DRONE_TAG}
no_cache: true
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: tagged-arm64-v8
platform:
os: linux
arch: arm64
steps:
- name: build
image: plugins/docker
settings:
dockerfile: Dockerfile
auto_tag: true
auto_tag_suffix: arm64-v8
repo: volkerraschek/postfixadmin
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
build_args:
- POSTFIXADMIN_VERSION=${DRONE_TAG}
no_cache: true
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: tagged-manifest
steps:
- name: build-manifest
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: container_image_registry_user
password:
from_secret: container_image_registry_password
- name: notify
image: docker.io/drillster/drone-email:latest
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
depends_on:
- tagged-amd64
- tagged-arm-v7
- tagged-arm64-v8
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
--- ---
kind: pipeline kind: pipeline
type: kubernetes type: kubernetes
@ -682,7 +192,7 @@ steps:
cpu: 50 cpu: 50
memory: 25M memory: 25M
settings: settings:
branch: master branch: v3.2.x
remote: ssh://git@github.com/volker-raschek/postfixadmin-docker.git remote: ssh://git@github.com/volker-raschek/postfixadmin-docker.git
force: true force: true
ssh_key: ssh_key:
@ -708,14 +218,8 @@ steps:
- changed - changed
- failure - failure
depends_on:
- latest-manifest
trigger: trigger:
branch:
- master
event: event:
- cron
- push - push
repo: repo:
- volker.raschek/postfixadmin-docker - volker.raschek/postfixadmin-docker

View File

@ -1,7 +1,8 @@
FROM docker.io/library/php:7.4-apache FROM docker.io/library/php:7.4-apache
# POSTFIXADMIN VERSION # POSTFIXADMIN VERSION
ARG POSTFIXADMIN_VERSION=3.3.9 ARG POSTFIXADMIN_VERSION \
POSTFIXADMIN_SHA512
# APACHE # APACHE
ENV APACHE_DOCUMENT_ROOT /var/www/html/public ENV APACHE_DOCUMENT_ROOT /var/www/html/public
@ -23,47 +24,45 @@ ENV POSTFIXADMIN_DATABASE_TYPE=sqlite \
# docker-entrypoint.sh dependencies # docker-entrypoint.sh dependencies
RUN set -eux; \ RUN set -eux; \
apt-get update; \ apt-get update; \
apt-get install --yes --no-install-recommends gosu apache2-utils; \ apt-get install --yes --no-install-recommends gosu; \
rm --recursive --force /var/lib/apt/lists/* rm --recursive --force /var/lib/apt/lists/*
# Install required PHP extensions # Install required PHP extensions
RUN set -ex; \ RUN set -ex; \
savedAptMark="$(apt-mark showmanual)"; \ savedAptMark="$(apt-mark showmanual)"; \
apt-get update; \ apt-get update; \
apt-get install --yes --no-install-recommends \ apt-get install --yes --no-install-recommends \
libc-client2007e-dev \ libc-client2007e-dev \
libkrb5-dev \ libkrb5-dev \
libpq-dev \ libpq-dev \
libsqlite3-dev; \ libsqlite3-dev; \
docker-php-ext-configure imap --with-imap-ssl --with-kerberos; \ docker-php-ext-configure imap --with-imap-ssl --with-kerberos; \
docker-php-ext-install -j "$(nproc)" \ docker-php-ext-install -j "$(nproc)" \
imap \ imap \
pdo_mysql \ pdo_mysql \
pdo_pgsql \ pdo_pgsql \
pdo_sqlite \ pdo_sqlite \
pgsql; \ pgsql; \
apt-mark auto '.*' > /dev/null; \ apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \ apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \ | awk '/=>/ { print $3 }' \
| sort -u \ | sort -u \
| xargs -r dpkg-query -S \ | xargs -r dpkg-query -S \
| cut -d: -f1 \ | cut -d: -f1 \
| sort -u \ | sort -u \
| xargs -rt apt-mark manual; \ | xargs -rt apt-mark manual; \
if [ ! -z ${POSTFIXADMIN_VERSION} ]; then \ apt-get purge --yes --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
curl --fail --silent --show-error --location "https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-${POSTFIXADMIN_VERSION}.tar.gz" --output postfixadmin.tar.gz; \ rm --recursive --force /var/lib/apt/lists/*
tar --extract --file postfixadmin.tar.gz --directory /var/www/html --strip-components=1; \
rm postfixadmin.tar.gz; \
else \
apt-get install --yes git; \
git clone https://github.com/postfixadmin/postfixadmin.git /var/www/html; \
fi; \
apt-get purge --yes --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm --recursive --force /var/lib/apt/lists/*
RUN mkdir --parents /var/www/html/templates_c; \ RUN set -eu; \
chown --recursive www-data:www-data /var/www/html curl --fail --silent --show-error --location "https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-${POSTFIXADMIN_VERSION}.tar.gz" --output postfixadmin.tar.gz ; \
echo "${POSTFIXADMIN_SHA512} *postfixadmin.tar.gz" | sha512sum -c -; \
tar --extract --file postfixadmin.tar.gz --directory /var/www/html --strip-components=1; \
rm postfixadmin.tar.gz; \
# Does not exist in tarball but is required
mkdir --parents /var/www/html/templates_c; \
chown --recursive www-data:www-data /var/www/html
COPY entrypoint.sh /usr/local/bin/ COPY entrypoint.sh /usr/local/bin/

View File

@ -1,3 +1,6 @@
POSTFIXADMIN_VERSION:=3.2.4
POSTFIXADMIN_SHA512:=2bd7ae05addbaf3c6c7eebea16ec1e21b2c67c8e6161446ed82a9553c26c04e19c1ec9ce248a9b9df504df56d309590259e6f04907b04b593548028b40e40d47
# CONTAINER_RUNTIME # CONTAINER_RUNTIME
# The CONTAINER_RUNTIME variable will be used to specified the path to a # The CONTAINER_RUNTIME variable will be used to specified the path to a
# container runtime. This is needed to start and run a container image. # container runtime. This is needed to start and run a container image.
@ -20,6 +23,7 @@ PHONY:=container-image/build
container-image/build: container-image/build:
${CONTAINER_RUNTIME} build \ ${CONTAINER_RUNTIME} build \
--build-arg POSTFIXADMIN_VERSION=${POSTFIXADMIN_VERSION} \ --build-arg POSTFIXADMIN_VERSION=${POSTFIXADMIN_VERSION} \
--build-arg POSTFIXADMIN_SHA512=${POSTFIXADMIN_SHA512} \
--file Dockerfile \ --file Dockerfile \
--no-cache \ --no-cache \
--pull \ --pull \

View File

@ -178,16 +178,15 @@ are documented
### POSTFIXADMIN_SETUP_PASSWORD ### POSTFIXADMIN_SETUP_PASSWORD
To login into the `setup.php` page is the setup password required. This can be To login into the `setup.php` page is the setup password required. This can be
defined via the variable `POSTFIXADMIN_SETUP_PASSWORD`. The password will be defined via the variable `POSTFIXADMIN_SETUP_PASSWORD`. The password will not be
hashed via bcrypt and used as value for the setting `$CONF['setup_password']` in configured in the `config.local.php` as plain text. It will be encrypted.
the config file `config.local.php`.
### POSTFIXADMIN_SMTP_CLIENT ### POSTFIXADMIN_SMTP_CLIENT
Hostname (FQDN) of the server hosting PostfixAdmin used in the `HELO` when Hostname (FQDN) of the server hosting PostfixAdmin used in the `HELO` when
sending emails from PostfixAdmin. The value of the environment will be sending emails from PostfixAdmin. The value of the environment will be
configured as the following config setting and is empty by default: configured as the following config setting: `$CONF['smtp_server']` and is empty
`$CONF['smtp_client']`. by default.
### POSTFIXADMIN_SMTP_SERVER ### POSTFIXADMIN_SMTP_SERVER

View File

@ -40,10 +40,6 @@ if [ "${POSTFIXADMIN_DATABASE_TYPE}" = 'sqlite' ]; then
fi fi
fi fi
# bycrypt POSTFIXADMIN_SETUP_PASSWORD
if [ ! -z ${POSTFIXADMIN_SETUP_PASSWORD+x} ]; then
POSTFIXADMIN_SETUP_PASSWORD=$(htpasswd -bnBC 10 "" "${POSTFIXADMIN_SETUP_PASSWORD}" | tr -d ':\n')
fi
# create config.local.pgp with vaules from env with POSTFIXADMIN_ prefix # create config.local.pgp with vaules from env with POSTFIXADMIN_ prefix
POSTFIXADMIN_ENV_VARS=($(env | sort | grep --perl-regexp '^POSTFIXADMIN_.*')) POSTFIXADMIN_ENV_VARS=($(env | sort | grep --perl-regexp '^POSTFIXADMIN_.*'))

View File

@ -1,26 +0,0 @@
image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
- "latest"
{{/if}}
manifests:
-
image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64
platform:
architecture: amd64
os: linux
-
image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-armv7
platform:
architecture: arm
os: linux
variant: v7
-
image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8
platform:
architecture: arm64
os: linux
variant: v8

View File

@ -1,22 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"automerge": false,
"automergeStrategy": "merge-commit",
"automergeType": "pr",
"rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch",
"regexManagers": [
{
"description": "Update postfixadmin git tag",
"fileMatch": [
"^Dockerfile$"
],
"matchStrings": [
"ARG POSTFIXADMIN_VERSION=(?<currentValue>.*?)\n"
],
"depNameTemplate": "postfixadmin/postfixadmin",
"datasourceTemplate": "github-tags",
"versioningTemplate": "regex:^(postfixadmin-)?(v)?(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)\\s"
}
]
}