Skip to content

Commit 06c7fd6

Browse files
authored
Merge pull request #19 from dockeronfire/develop
1.4
2 parents 7a6f150 + 6a019f8 commit 06c7fd6

File tree

13 files changed

+82
-28
lines changed

13 files changed

+82
-28
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ LABEL maintainer="Constantine Karnaukhov <[email protected]>"
44

55
# resolves gitlab.com/ric_harvey/nginx-php-fpm#166
66
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
7-
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
7+
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community gnu-libiconv
88

99
# Install nginx
1010
RUN NGINX_VERSION=1.14.0 \

docs/configure.md

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,27 @@
44

55
Вы можете передать нужные вам переменные окружения в контейнер для настройки
66

7-
| Env | Описание |
8-
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9-
| SOF_PRESET | Укажите при необходимости, какой пресет использовать (`wordpress`, `laravel`, `bitrix`). [Подробнее про пресеты](./presets.md) |
10-
| APPLICATION_ENV | Установите данную переменную в `production` при запуске "боевого" окружения, чтобы предотвратить включение опций для разработки |
11-
| WEBROOT | Изменить корневую директорию веб-сервера с `/var/www/html` на вашу собственную. |
12-
| ERRORS | Выставьте значение "1" чтобы выводить ошибки PHP в браузере |
13-
| HIDE_NGINX_HEADERS | Чтобы отключить поведение по-умолчанию выставьте значение "0". По-умолчанию из заголовков скрываются версии nginx и php |
14-
| PHP_MEM_LIMIT | Позволяет менять лимит PHP по памяти, по-умолчанию 128 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.memory-limit) |
15-
| PHP_POST_MAX_SIZE | Позволяет менять максимально допустимый размер данных, отправляемых методом POST, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.post-max-size) |
16-
| PHP_UPLOAD_MAX_FILESIZE | Позвоялет менять максимальный размер закачиваемого файла, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.upload-max-filesize) |
17-
| PHP_ERRORS_STDERR | Укажите "1", чтобы отправлять сообщения об ошибках PHP в логи контейнера |
18-
| REAL_IP_HEADER | Укажите "1", чтобы включить поддержку real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) |
19-
| REAL_IP_FROM | Укажите свой CIDR блок для real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) |
20-
| RUN_SCRIPTS | Укажите "1" для выполнения скриптов из `/var/www/html/scripts` перед запуском веб-сервера |
21-
| PGID | Укажите свой GroupId для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) |
22-
| PUID | Укажите свой UserID для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) |
23-
| SSMTP_URI | Укажите параметры для подключения к SMTP-серверу в формате URI, например: `smtp://user:password@mailserver:25` |
24-
| SSMTP_DEBUG | Укажите "1", чтобы включить режим отладки в ssmtp |
25-
| DOMAIN | Укажите свой домен, чтобы добавить настройку RewriteDomain в конфиг ssmtp |
26-
| SSMTP_DEFAULT_FROM | Укажите email, с которого должная отправляться почта по-умолчанию |
27-
| SKIP_CHOWN | Укажите "1", чтобы избежать смены владельца на `/var/www/html` |
28-
| ENABLE_XDEBUG | Укажите "1", включить расширение Xdebug |
29-
| XDEBUG_REMOTE_HOST | Укажите свой IP адрес для `xdebug.remote_host`. [Подробнее про Xdebug](./xdebug.md) |
7+
| Env | Описание |
8+
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9+
| `SOF_PRESET` | Укажите при необходимости, какой пресет использовать (`wordpress`, `laravel`, `bitrix`). [Подробнее про пресеты](./presets.md) |
10+
| `APPLICATION_ENV` | Установите данную переменную в `production` при запуске "боевого" окружения, чтобы предотвратить включение опций для разработки |
11+
| `WEBROOT` | Изменить корневую директорию веб-сервера с `/var/www/html` на вашу собственную. |
12+
| `ERRORS` | Выставьте значение "1" чтобы выводить ошибки PHP в браузере |
13+
| `HIDE_NGINX_HEADERS` | Чтобы отключить поведение по-умолчанию выставьте значение "0". По-умолчанию из заголовков скрываются версии nginx и php |
14+
| `PHP_MEM_LIMIT` | Позволяет менять лимит PHP по памяти, по-умолчанию 128 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.memory-limit) |
15+
| `PHP_POST_MAX_SIZE` | Позволяет менять максимально допустимый размер данных, отправляемых методом POST, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.post-max-size) |
16+
| `PHP_UPLOAD_MAX_FILESIZE` | Позвоялет менять максимальный размер закачиваемого файла, по-умолчанию 100 Mb. Подробнее в [документации PHP](https://www.php.net/manual/ru/ini.core.php#ini.upload-max-filesize) |
17+
| `PHP_ERRORS_STDERR` | Укажите "1", чтобы отправлять сообщения об ошибках PHP в логи контейнера |
18+
| `REAL_IP_HEADER` | Укажите "1", чтобы включить поддержку real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) |
19+
| `REAL_IP_FROM` | Укажите свой CIDR блок для real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) |
20+
| `RUN_SCRIPTS` | Укажите "1" для выполнения скриптов из `/var/www/html/scripts` перед запуском веб-сервера |
21+
| `PGID` | Укажите свой GroupId для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) |
22+
| `PUID` | Укажите свой UserID для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) |
23+
| `SSMTP_URI` | Укажите параметры для подключения к SMTP-серверу в формате URI, например: `(smtp,tls)://user:password@mailserver:25` |
24+
| `SSMTP_DEBUG` | Укажите "1", чтобы включить режим отладки в ssmtp |
25+
| `SSMTP_NO_STARTTLS` | Укажите "1", чтобы использовать настройки `UseTLS` и `TLS_CA_File` вместо `UseSTARTTLS` для ssmtp (используется только при указании протокола `tls` в `SSMTP_URI`) |
26+
| `DOMAIN` | Укажите свой домен, чтобы добавить настройку RewriteDomain в конфиг ssmtp |
27+
| `SSMTP_DEFAULT_FROM` | Укажите email, с которого должная отправляться почта по-умолчанию |
28+
| `SKIP_CHOWN` | Укажите "1", чтобы избежать смены владельца на `/var/www/html` |
29+
| `ENABLE_XDEBUG` | Укажите "1", включить расширение Xdebug |
30+
| `XDEBUG_REMOTE_HOST` | Укажите свой IP адрес для `xdebug.remote_host`. [Подробнее про Xdebug](./xdebug.md) |

docs/presets.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@
1515
- запрет прямого доступа из браузера к скрытым файлам, конфигам и пакетам composer,
1616
скриптам выполняющимся перед запуском веб-сервера
1717

18+
## Single Entrypoint
19+
20+
Данный пресет направляет все запросы на `index.php` для работы динамических страниц.
21+
Используется пресетами WordPress и Laravel.
22+
Для использования данного пресета передайте в контейнера переменную окружения `SOF_PRESET=single-entrypoint`.
23+
24+
Чтобы передать обработку запросов другому скрипту укажите его имя в переменной окружения
25+
`ENTRYPOINT_SCRIPT`, например `ENTRYPOINT_SCRIPT=router.php`. Скрипт должен находится в WEBROOT
26+
или поддиректории и не должен начинаться со слеша `/`.
27+
1828
## WordPress
1929

2030
Данный пресет направляет все запросы на `index.php` для работы динамических страниц,

spaceonfire/bin/ssmtp-setup

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,15 @@ function setupSsmtpConf() {
3939

4040
if (stripos($ssmtp['scheme'], 'tls') !== false) {
4141
$conf[] = 'UseTLS=YES';
42-
$conf[] = 'TLS_CA_File=/etc/ssl/certs/ca-certificates.crt';
42+
43+
if ($_ENV['SSMTP_NO_STARTTLS']) {
44+
$conf[] = 'TLS_CA_File=/etc/ssl/certs/ca-certificates.crt';
45+
} else {
46+
$conf[] = 'UseSTARTTLS=YES';
47+
}
4348
}
4449

50+
$conf[] = '';
4551
$conf = implode("\n", $conf);
4652
file_put_contents('/etc/ssmtp/ssmtp.conf', $conf, FILE_APPEND | LOCK_EX);
4753
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
select-preset single-entrypoint
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
if [ ! -z "$ENTRYPOINT_SCRIPT" ]; then
4+
sed -i "s#index.php#${ENTRYPOINT_SCRIPT}#g" /etc/nginx/vhost.common.d/10-location-root.conf
5+
fi
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
select-preset single-entrypoint

spaceonfire/presets/wordpress/nginx/vhost.common.d/10-location-root.conf

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: '3'
2+
3+
services:
4+
test:
5+
build: ../../
6+
image: spaceonfire/nginx-php-fpm:next
7+
ports:
8+
- 8080:80
9+
environment:
10+
- SOF_PRESET=single-entrypoint
11+
- ENTRYPOINT_SCRIPT=router.php
12+
- PAGER=more

test/ssmtp/docker-compose.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version: '3'
2+
3+
services:
4+
test:
5+
build: ../../
6+
image: spaceonfire/nginx-php-fpm:next
7+
ports:
8+
- 8080:80
9+
environment:
10+
- SOF_PRESET=default
11+
- APPLICATION_ENV=development
12+
- PAGER=more
13+
#- SSMTP_URI=smtp://mailcatcher:25
14+
- SSMTP_URI=tls://apikey:[email protected]:587
15+
16+
volumes:
17+
- ./:/var/www/html:Z

0 commit comments

Comments
 (0)