public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[PHP-FPM] Include more modules for upcoming features and Nextcloud support, drop ro flag; [Watchdog] Some fixes and changes
72995ff9
data/Dockerfiles/phpfpm/Dockerfile | 38 ++++++++++++++++++++++++----
data/Dockerfiles/phpfpm/docker-entrypoint.sh | 12 ---------
data/Dockerfiles/watchdog/watchdog.sh | 4 ++-
docker-compose.yml | 7 ++---
4 files changed, 40 insertions(+), 21 deletions(-)
Diff
diff --git a/data/Dockerfiles/phpfpm/Dockerfile b/data/Dockerfiles/phpfpm/Dockerfile
index bd1837ec..c447e727 100644
--- a/data/Dockerfiles/phpfpm/Dockerfile
+++ b/data/Dockerfiles/phpfpm/Dockerfile
@@ -1,8 +1,16 @@
FROM php:7.1-fpm-alpine
LABEL maintainer "Andre Peters <[email protected]>"
+ENV REDIS_PECL 3.1.4
+ENV MEMCACHED_PECL 3.0.3
+ENV APCU_PECL 5.1.8
+
RUN apk add -U --no-cache libxml2-dev \
icu-dev \
+ imap-dev \
+ libmemcached-dev \
+ cyrus-sasl-dev \
+ pcre-dev \
icu-libs \
redis \
mysql-client \
@@ -11,13 +19,33 @@ RUN apk add -U --no-cache libxml2-dev \
g++ \
make \
openssl \
- && pecl install redis \
+ openssl-dev \
+ samba-client \
+ libpng \
+ libpng-dev \
+ libjpeg-turbo-dev \
+ libwebp-dev \
+ zlib-dev \
+ libxpm-dev \
+ c-client \
+ && pecl install redis-${REDIS_PECL} memcached-${MEMCACHED_PECL} APCu-${APCU_PECL} \
+ && docker-php-ext-enable redis apcu memcached \
&& pecl clear-cache \
&& docker-php-ext-configure intl \
- && docker-php-ext-install intl pdo pdo_mysql xmlrpc \
- && docker-php-ext-enable redis \
- && pear install channel://pear.php.net/Net_IDNA2-0.1.1 Auth_SASL Net_IMAP NET_SMTP Net_IDNA2 Mail_mime \
- && apk del autoconf g++ make libxml2-dev icu-dev
+ && docker-php-ext-install intl pdo pdo_mysql xmlrpc gd zip pcntl opcache \
+ && docker-php-ext-configure imap --with-imap --with-imap-ssl \
+ && docker-php-ext-install imap \
+ && pear install channel://pear.php.net/Net_IDNA2-0.1.1 Auth_SASL2 Net_IMAP NET_SMTP Net_IDNA2 Mail_mime \
+ && apk del autoconf g++ make libxml2-dev icu-dev imap-dev openssl-dev cyrus-sasl-dev pcre-dev libpng-dev libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev \
+ && { \
+ echo 'opcache.enable=1'; \
+ echo 'opcache.enable_cli=1'; \
+ echo 'opcache.interned_strings_buffer=8'; \
+ echo 'opcache.max_accelerated_files=10000'; \
+ echo 'opcache.memory_consumption=128'; \
+ echo 'opcache.save_comments=1'; \
+ echo 'opcache.revalidate_freq=1'; \
+} > /usr/local/etc/php/conf.d/opcache-recommended.ini
COPY ./docker-entrypoint.sh /
diff --git a/data/Dockerfiles/phpfpm/docker-entrypoint.sh b/data/Dockerfiles/phpfpm/docker-entrypoint.sh
index 65e33424..8c986335 100755
--- a/data/Dockerfiles/phpfpm/docker-entrypoint.sh
+++ b/data/Dockerfiles/phpfpm/docker-entrypoint.sh
@@ -82,16 +82,4 @@ if [[ ! -z ${DOMAIN_ARRAY} ]]; then
done
fi
-# Socket access
-DOCKER_SOCKET=/var/run/docker.sock
-DOCKER_GROUP=docker
-REGULAR_USER=www-data
-
-if [ -S ${DOCKER_SOCKET} ]; then
- DOCKER_GID=$(stat -c '%g' ${DOCKER_SOCKET})
- delgroup $(stat -c '%G' ${DOCKER_SOCKET})
- addgroup -g ${DOCKER_GID} ${DOCKER_GROUP}
- adduser ${REGULAR_USER} ${DOCKER_GROUP}
-fi
-
exec "$@"
diff --git a/data/Dockerfiles/watchdog/watchdog.sh b/data/Dockerfiles/watchdog/watchdog.sh
index 546fba64..c7692da4 100755
--- a/data/Dockerfiles/watchdog/watchdog.sh
+++ b/data/Dockerfiles/watchdog/watchdog.sh
@@ -66,7 +66,9 @@ get_container_ip() {
until [[ ${CONTAINER_IP} =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] || [[ ${LOOP_C} -gt 5 ]]; do
sleep 1
CONTAINER_ID=$(curl --silent http://dockerapi:8080/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], id: .Id}" | jq -rc "select( .name | contains(\"${1}\")) | .id")
- CONTAINER_IP=$(curl --silent http://dockerapi:8080/containers/${CONTAINER_ID}/json | jq -r '.NetworkSettings.Networks[].IPAddress')
+ if [[ ! -z ${CONTAINER_ID} ]]; then
+ CONTAINER_IP=$(curl --silent http://dockerapi:8080/containers/${CONTAINER_ID}/json | jq -r '.NetworkSettings.Networks[].IPAddress')
+ fi
LOOP_C=$((LOOP_C + 1))
done
[[ ${LOOP_C} -gt 5 ]] && echo 240.0.0.0 || echo ${CONTAINER_IP}
diff --git a/docker-compose.yml b/docker-compose.yml
index c351b588..78ef16c0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -96,13 +96,13 @@ services:
- rspamd
php-fpm-mailcow:
- image: mailcow/phpfpm:1.2
+ image: mailcow/phpfpm:1.3
build: ./data/Dockerfiles/phpfpm
command: "php-fpm -d date.timezone=${TZ}"
depends_on:
- redis-mailcow
volumes:
- - ./data/web:/web:ro
+ - ./data/web:/web:rw
- ./data/conf/rspamd/dynmaps:/dynmaps:ro
- dkim-vol-1:/data/dkim
environment:
@@ -295,8 +295,9 @@ services:
- /lib/modules:/lib/modules:ro
watchdog-mailcow:
- image: mailcow/watchdog:1.5
+ image: mailcow/watchdog:1.6
build: ./data/Dockerfiles/watchdog
+ command: /watchdog.sh
init: false
volumes:
- vmail-vol-1:/vmail:ro