
Roman
15.07.2018
07:52:44
server {
index index.php index.html;
server_name docker.app;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}

Анатолий
15.07.2018
07:53:05
если не удаляли default конфиг хоста то nginx должен показать тестовую страницу с информацией о том что он работает.
вот именно что такое server_name docker.app?

Ванько
15.07.2018
07:53:17

Roman
15.07.2018
07:53:43

Google

Roman
15.07.2018
07:54:29

Ванько
15.07.2018
07:54:43

Анатолий
15.07.2018
07:54:52
аа
ну все понятно это сертификат

Igor
15.07.2018
07:55:06

Анатолий
15.07.2018
07:55:07
он не валидный для данного server_name

Roman
15.07.2018
07:55:17
тда причем тут он. почему тогда на линухе все ок?

Igor
15.07.2018
07:55:39

next
15.07.2018
07:55:50
на линухе ты заходил на другой адрес

Igor
15.07.2018
07:55:52
Выполни ту команду что я писал выше

next
15.07.2018
07:56:02
сертификат делается для конкрнетного адреса

Roman
15.07.2018
07:56:08

Igor
15.07.2018
07:56:13

Google

Roman
15.07.2018
07:56:15
ща
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# deny access to .htaccess files, if Apache's document root
# deny all;

Анатолий
15.07.2018
07:56:52

Roman
15.07.2018
07:57:41

Анатолий
15.07.2018
07:57:54
для того чтобы попасть на этот хост в винде укажите
в файле hosts
127.0.0.1 docker.app

Roman
15.07.2018
07:57:55
могу конечно убрать его
так ето ж алиас просто будет. 127.0.0.1 не работает же

Анатолий
15.07.2018
07:58:48
скорее всего нет конфига default и nginx все шлет на этот хост а поскольку сертификат сгенерирован на конкретный субдомен от и браузер ругается и отказывает в подключении.
нужно стучатся не по ip а по хостнейму

Roman
15.07.2018
07:59:15
хмм. тоесть если оключу ссл все заведется
ок щас поексперементирую. спасибо

Егор
15.07.2018
08:00:24
Наверное часто задаваемый вопрос, но не смог найти внятного ответа в сети - как делать бесшовный деплой с докером? Вот я на продакшене делаю pull образа, мне нужно остановить старые контейнеры и запустить новые - это делается не мгновенно. Я вообще правильную последовательность действий для деплоя предложил или как-то по-другому делают?

Анатолий
15.07.2018
08:01:09
у вас в nginx есть две директории
sites-enabled
sites-available
default лежит в sites-available линканите его в sites-enabled
и будет отзываться по ip:8080 и приветствовать

Roman
15.07.2018
08:03:12

Анатолий
15.07.2018
08:05:44
я бы с https так не замарачивался достаточно на хост машине иметь haproxy
а все хосты nginx держать на http
тогда haproxy может рулить https и подключать нужные сертификаты на лету.
У меня что на тестовой что на боевой машине стоит haproxy а все сайты висят на http но пользователи ходят по https туда.
Но это уже кому как удобнее.

Roman
15.07.2018
08:21:56

Анатолий
15.07.2018
08:23:44

Google

Roman
15.07.2018
08:24:25
а там нему sites-enabled директории

Анатолий
15.07.2018
08:24:38
а что есть в nginx.conf

Roman
15.07.2018
08:24:47
щас

Анатолий
15.07.2018
08:24:49
мб просто переименовать conf.d
в configure к примеру.

Roman
15.07.2018
08:25:32
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;

Анатолий
15.07.2018
08:25:53
вот

Roman
15.07.2018
08:26:11

Анатолий
15.07.2018
08:26:11
переименовываем conf.d директорию и меняем в include ... путь
либо добавим ниже еще
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

Roman
15.07.2018
08:26:40
все такакто сложно. хотелось по простому

Анатолий
15.07.2018
08:27:02
с коробки вот такие настройки в nginx

Анатолий
15.07.2018
08:27:15
видимо незря добавили вторую директорию

Roman
15.07.2018
08:27:52
проблему понял... нужно подумать как лучше сделать. спс

Анатолий
15.07.2018
08:27:58
ок

Sun
15.07.2018
09:12:21
М-да, на 0.0.0.0, мне кажется, даже наши индусы не пытались ходить никогда. :)

Andrey
15.07.2018
12:31:33
Ы

Roman
15.07.2018
19:13:19
volumes:
- ./code:/code
- ./nginx.conf:/etc/nginx/nginx.conf
- ./sites-available/:/etc/nginx/sites-available
на винде получаю ошибку
ERROR: for 298b82bdabc2_docker_web_1 Cannot start service web: b'OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \\"rootfs_linux.go:58: mounting \\\\\\"/c/docker/nginx.conf\\\\\\" to rootfs \\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/18ff66cf730928a896e15cc0840c2232f8221e2787bb8ec95e8dcfbceb871a7d\\\\\\" at \\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/18ff66cf730928a896e15cc0840c2232f8221e2787bb8ec95e8dcfbceb871a7d/etc/nginx/nginx.conf\\\\\\" caused \\\\\\"not a directory\\\\\\"\\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
nginx.conf - ето ж файл. что винде не нравится?(

Kirill
15.07.2018
19:30:38

Google

Roman
15.07.2018
19:31:25
- ./nginx.conf/:/etc/nginx/nginx.confтак?

Kirill
15.07.2018
19:31:47
Если надо добавить файл, можешь сделать докерфайл, там FROM nginx, и потом ADD nginx.conf /path/nginx.conf

Admin
ERROR: S client not available

Roman
15.07.2018
19:32:41
хотел обойтися одным ямл файлом

Sun
15.07.2018
19:47:06
А, стоп, ты опять файл цепляешь
- ./nginx:/etc/nginx

Andrey
16.07.2018
01:16:21
ну, то есть можно конечно и относительный путь, но это иногда ломается, например вот https://github.com/docker/compose/issues/3925

Евгений
16.07.2018
05:23:29
Всем привет!
Вопрос небольшой.
Есть докер файл в котором производятся простые манипуляции с фс:
RUN mkdir /dev/net && mknod /dev/net/tun c 10 200 - это нужно для работы с vpn внутри контейнера.
Однако, когда это запущено из Dockerfile - ощущение, будто эти изменения не применяются. т.е. нет директории и нет tun.
Если же подключится к контейнеру и выполнить эти команды - все окей.
есть ощущение, будто я упускаю какую-то важную особенность)

Алексей
16.07.2018
05:25:48
вынести эти команды в run.sh
и в cmd указать запуск этого файла

Евгений
16.07.2018
05:26:54
Тут вопрос скорее почему это происходит? Мои мысли - я создаю контейнер и хочу настроить в нем все внутри докер файла, а изменения внесенные там - не применяются.
Тогда смысл этого вообще?)

Sergey
16.07.2018
05:30:08

Евгений
16.07.2018
05:30:39

Sergey
16.07.2018
05:30:48

Евгений
16.07.2018
05:30:50
Ну, он создает и директорию и tun

Google

Евгений
16.07.2018
05:31:01

Sergey
16.07.2018
05:31:22
в докерфайле создайте в других каталогах, локализуйте проблему
только там происходит или нет

Евгений
16.07.2018
05:32:03
тоесть мне попробовать запустить mknode из WORKDIR ??

Sergey
16.07.2018
05:32:11
?♂️

Евгений
16.07.2018
05:32:18
Я не понимаю о чем речь)

Sergey
16.07.2018
05:32:55
вы прежде чем спрашивать вы протестировали свое "решение" в других каталогах? какие вы действия предприняли для того чтобы найти где косяк?

Евгений
16.07.2018
05:34:10
В каких других каталогах?

Sergey
16.07.2018
05:34:25
ОМГ
ты в /dev создаете папку и блочный файл, так?
вы пробовали его создавать в других местах?

Евгений
16.07.2018
05:35:20
У меня есть docker-compose.yaml и Dockerfile