From 57d1f4a5ad36201d02e269ee395a25362f5947ac Mon Sep 17 00:00:00 2001 From: Constantine Karnaukhov Date: Sat, 29 Jun 2019 20:45:56 +0400 Subject: [PATCH 1/2] refactor(ssmtp): use starttls as default option for tls smtp connection --- docs/configure.md | 47 ++++++++++++++++++----------------- spaceonfire/bin/ssmtp-setup | 8 +++++- test/ssmtp/docker-compose.yml | 17 +++++++++++++ 3 files changed, 48 insertions(+), 24 deletions(-) create mode 100644 test/ssmtp/docker-compose.yml diff --git a/docs/configure.md b/docs/configure.md index a6b4a66..d73487a 100644 --- a/docs/configure.md +++ b/docs/configure.md @@ -4,26 +4,27 @@ Вы можете передать нужные вам переменные окружения в контейнер для настройки -| Env | Описание | -| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| SOF_PRESET | Укажите при необходимости, какой пресет использовать (`wordpress`, `laravel`, `bitrix`). [Подробнее про пресеты](./presets.md) | -| APPLICATION_ENV | Установите данную переменную в `production` при запуске "боевого" окружения, чтобы предотвратить включение опций для разработки | -| WEBROOT | Изменить корневую директорию веб-сервера с `/var/www/html` на вашу собственную. | -| ERRORS | Выставьте значение "1" чтобы выводить ошибки PHP в браузере | -| HIDE_NGINX_HEADERS | Чтобы отключить поведение по-умолчанию выставьте значение "0". По-умолчанию из заголовков скрываются версии nginx и php | -| PHP_MEM_LIMIT | Позволяет менять лимит PHP по памяти, по-умолчанию 128 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.memory-limit) | -| PHP_POST_MAX_SIZE | Позволяет менять максимально допустимый размер данных, отправляемых методом POST, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.post-max-size) | -| PHP_UPLOAD_MAX_FILESIZE | Позвоялет менять максимальный размер закачиваемого файла, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.upload-max-filesize) | -| PHP_ERRORS_STDERR | Укажите "1", чтобы отправлять сообщения об ошибках PHP в логи контейнера | -| REAL_IP_HEADER | Укажите "1", чтобы включить поддержку real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) | -| REAL_IP_FROM | Укажите свой CIDR блок для real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) | -| RUN_SCRIPTS | Укажите "1" для выполнения скриптов из `/var/www/html/scripts` перед запуском веб-сервера | -| PGID | Укажите свой GroupId для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) | -| PUID | Укажите свой UserID для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) | -| SSMTP_URI | Укажите параметры для подключения к SMTP-серверу в формате URI, например: `smtp://user:password@mailserver:25` | -| SSMTP_DEBUG | Укажите "1", чтобы включить режим отладки в ssmtp | -| DOMAIN | Укажите свой домен, чтобы добавить настройку RewriteDomain в конфиг ssmtp | -| SSMTP_DEFAULT_FROM | Укажите email, с которого должная отправляться почта по-умолчанию | -| SKIP_CHOWN | Укажите "1", чтобы избежать смены владельца на `/var/www/html` | -| ENABLE_XDEBUG | Укажите "1", включить расширение Xdebug | -| XDEBUG_REMOTE_HOST | Укажите свой IP адрес для `xdebug.remote_host`. [Подробнее про Xdebug](./xdebug.md) | +| Env | Описание | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SOF_PRESET` | Укажите при необходимости, какой пресет использовать (`wordpress`, `laravel`, `bitrix`). [Подробнее про пресеты](./presets.md) | +| `APPLICATION_ENV` | Установите данную переменную в `production` при запуске "боевого" окружения, чтобы предотвратить включение опций для разработки | +| `WEBROOT` | Изменить корневую директорию веб-сервера с `/var/www/html` на вашу собственную. | +| `ERRORS` | Выставьте значение "1" чтобы выводить ошибки PHP в браузере | +| `HIDE_NGINX_HEADERS` | Чтобы отключить поведение по-умолчанию выставьте значение "0". По-умолчанию из заголовков скрываются версии nginx и php | +| `PHP_MEM_LIMIT` | Позволяет менять лимит PHP по памяти, по-умолчанию 128 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.memory-limit) | +| `PHP_POST_MAX_SIZE` | Позволяет менять максимально допустимый размер данных, отправляемых методом POST, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.post-max-size) | +| `PHP_UPLOAD_MAX_FILESIZE` | Позвоялет менять максимальный размер закачиваемого файла, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.upload-max-filesize) | +| `PHP_ERRORS_STDERR` | Укажите "1", чтобы отправлять сообщения об ошибках PHP в логи контейнера | +| `REAL_IP_HEADER` | Укажите "1", чтобы включить поддержку real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) | +| `REAL_IP_FROM` | Укажите свой CIDR блок для real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) | +| `RUN_SCRIPTS` | Укажите "1" для выполнения скриптов из `/var/www/html/scripts` перед запуском веб-сервера | +| `PGID` | Укажите свой GroupId для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) | +| `PUID` | Укажите свой UserID для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) | +| `SSMTP_URI` | Укажите параметры для подключения к SMTP-серверу в формате URI, например: `(smtp,tls)://user:password@mailserver:25` | +| `SSMTP_DEBUG` | Укажите "1", чтобы включить режим отладки в ssmtp | +| `SSMTP_NO_STARTTLS` | Укажите "1", чтобы использовать настройки `UseTLS` и `TLS_CA_File` вместо `UseSTARTTLS` для ssmtp (используется только при указании протокола `tls` в `SSMTP_URI`) | +| `DOMAIN` | Укажите свой домен, чтобы добавить настройку RewriteDomain в конфиг ssmtp | +| `SSMTP_DEFAULT_FROM` | Укажите email, с которого должная отправляться почта по-умолчанию | +| `SKIP_CHOWN` | Укажите "1", чтобы избежать смены владельца на `/var/www/html` | +| `ENABLE_XDEBUG` | Укажите "1", включить расширение Xdebug | +| `XDEBUG_REMOTE_HOST` | Укажите свой IP адрес для `xdebug.remote_host`. [Подробнее про Xdebug](./xdebug.md) | diff --git a/spaceonfire/bin/ssmtp-setup b/spaceonfire/bin/ssmtp-setup index 6f15823..9786f07 100755 --- a/spaceonfire/bin/ssmtp-setup +++ b/spaceonfire/bin/ssmtp-setup @@ -39,9 +39,15 @@ function setupSsmtpConf() { if (stripos($ssmtp['scheme'], 'tls') !== false) { $conf[] = 'UseTLS=YES'; - $conf[] = 'TLS_CA_File=/etc/ssl/certs/ca-certificates.crt'; + + if ($_ENV['SSMTP_NO_STARTTLS']) { + $conf[] = 'TLS_CA_File=/etc/ssl/certs/ca-certificates.crt'; + } else { + $conf[] = 'UseSTARTTLS=YES'; + } } + $conf[] = ''; $conf = implode("\n", $conf); file_put_contents('/etc/ssmtp/ssmtp.conf', $conf, FILE_APPEND | LOCK_EX); } diff --git a/test/ssmtp/docker-compose.yml b/test/ssmtp/docker-compose.yml new file mode 100644 index 0000000..78ebcab --- /dev/null +++ b/test/ssmtp/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' + +services: + test: + build: ../../ + image: spaceonfire/nginx-php-fpm:next + ports: + - 8080:80 + environment: + - SOF_PRESET=default + - APPLICATION_ENV=development + - PAGER=more + #- SSMTP_URI=smtp://mailcatcher:25 + - SSMTP_URI=tls://apikey:yourapikey@smtp.sendgrid.net:587 + - SSMTP_DEFAULT_FROM=info@docker.local + volumes: + - ./:/var/www/html:Z From 334e034222ad927325d20e13758ae41a285819a2 Mon Sep 17 00:00:00 2001 From: Constantine Karnaukhov Date: Sat, 29 Jun 2019 21:12:00 +0400 Subject: [PATCH 2/2] fix(Dockerfile): install gnu-libiconv package from community repo --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8a425da..9d3506c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ LABEL maintainer="Constantine Karnaukhov " # resolves gitlab.com/ric_harvey/nginx-php-fpm#166 ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php -RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv +RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community gnu-libiconv # Install nginx RUN NGINX_VERSION=1.14.0 \