@docker_ru

Страница 876 из 1375
Илья
15.11.2018
04:47:48
Ну сделай чтобы был основан на nginx а не на fpm Какой толк только от fpm без веб сервера

И у тебя будет один контейнер с одной задачей

Николай
15.11.2018
04:52:05
Ну сделай чтобы был основан на nginx а не на fpm Какой толк только от fpm без веб сервера
ну тут такое, nginx конфигурацию свою не меняет от сервиса к сервису, там только виртуальные хосты рознятся немного, а вот конфигурации php и набор модулей у каждого сервиса свои нет смысла делать общий php-fpm контейнер и толкать в каждую прилагу nginx

Илья
15.11.2018
04:55:25
А почему не сделать один контейнер nginx с конфой для всех прилождух А fpm там указывать разный?

Google
Илья
15.11.2018
04:55:47
В одной секции fastcgi_pass php-fpm:9000; В другой fastcgi_pass php-fpm2:9000;

Николай
15.11.2018
04:57:46
А почему не сделать один контейнер nginx с конфой для всех прилождух А fpm там указывать разный?
именно, так оно и сделано сейчас все, работает прекрасно. загвоздка в том что надо все это свести в 1 домен

Ранее я собирал контейнеры с прилагами просто основываясь на alpine, и устанавливая в них nginx и php-fpm, из за этого приходилось устанавливать в контейнерах еще и supervisor чтобы данный зоопарк там нормально запускался. но это, ИМХО, самая уебанская практика, не хочу больше так писать)

Илья
15.11.2018
04:59:14
Полюбому можно свести на один домен, просто в конфиге nginx указать в зависимости от uri отправлять на опредлеленный php

Николай
15.11.2018
05:01:20
Полюбому можно свести на один домен, просто в конфиге nginx указать в зависимости от uri отправлять на опредлеленный php
location /app1/ { rewrite ^/app1(/.*)$ $1 break; proxy_pass http://app1; } делаю проксированием но оно не будет так работать, ибо, как я писал ранее в контейнерах с прилагами отсутствует вебсервер, отвечать тупо некому

Илья
15.11.2018
05:03:48
upstream azaza { server domain:80; } server { listen 8080; location /hello/ { proxy_pass http://azaza/;

Хотя мож я туплю. Сорян.

Мож более опытные помогут

Николай
15.11.2018
05:09:09
Хотя мож я туплю. Сорян.
не, сорян, но я все это описал, не работает оно так))

Илья
15.11.2018
05:09:19
Эх

Maxim
15.11.2018
06:32:18
Привет, какую виртуальную машину на винду посоветуете в 2018. задачи, докер, nginx, front-end на виртуалке планирую поставить убунту сервер
Приготовьтесь к тому, что Volume будут тупить. Для front-end, может, не столь критично, но вот сайты на WP в таком контейнере работают в 1.5 - 2 раза медленнее, чем в просто виртуалке.

Vladimir
15.11.2018
07:06:49
Доброе утро. Ребят, а именно backend разработчики, как вы выполняете migrations, seeds, clear cache и queue с докером? Заходите в контейнер через ssh или все таки удалось нормально автоматизировать? А если удалось, то поделитесь опытом, расскажите как

Google
Vladimir
15.11.2018
07:17:26
Что имеется ввиду под зашить? Очередь как минимум это отдельный фоновый процесс. Он наверное должен быть в отдельном контейнере, иметь конфигурацию языка, к примеру php для его использования, подключения к БД и т.д. Но кажется что это немного жирно для выполнения одной команды. Хотя могу ошибаться.

Vladimir
15.11.2018
07:18:22
@gitkv, можешь показать его? Интересно что там выполняешь.

Николай
15.11.2018
07:20:33
ENTRYPOINT ["/root/entrypoint.sh"] и сам файл: #!/bin/sh # Install dependencies composer install --no-interaction # Clear the cache php artisan cache:clear --no-interaction # Create database php artisan db:create # Run migrations if [ "$APP_ENV" = "production" ]; then php artisan migrate --force --no-interaction; else php artisan migrate:refresh --seed --no-interaction; fi echo "Service complete" # Run exec "$@" сам файл пока использую для разработки, поэтому пока не запаривался, потом надо пересмотреть немного

Vladimir
15.11.2018
07:22:03
@gitkv, понял, спасибо! Довольно интересное решение. Думаю для меня самое то.

Николай
15.11.2018
08:32:22
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
неужели никто не сталкивался с такой задачей?

Stan
15.11.2018
08:38:51
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
"1 контейнер = 1 процесс" - it's so 2010

они даже у себя в доках убрали это

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Each container should have only one concern.

Александр
15.11.2018
08:44:10
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
Проксировать в location fastcgi_pass app_N:9000

Илья
15.11.2018
08:44:51
Было =)

Артем
15.11.2018
08:48:23
Всем привет. Подскажите как передать переменные среды заданные при запуске докер контейнера (через environment: или -e) в его исполняемый sh файлы который стартует по крону внутри этого же контейнера.?

Николай
15.11.2018
08:49:15
они даже у себя в доках убрали это
типа нормальным считается сборка контейнера с заталкиванием в него и nginx и php и прилаги?

Илья
15.11.2018
08:52:15
Ну как бы да. Ты образ свой пилишь а потом контейнер его мутиш

Но минус только в том что если много туда запихать сервисов то теряется гибкость в подмене

Dmitry
15.11.2018
08:56:05
--init

По идее

Google
Dmitry
15.11.2018
08:56:36
Мне не очень нужно было, делю на контейнеры,

Николай
15.11.2018
08:57:13
Артем
15.11.2018
08:57:18
если они были переданы, то должны быть доступны в контейнере
Контейнер запущен с CMD ["cron", "-f"] в самом кроне sh файл который выполняет определённое условие, и дергает пайтон приложение которому и нужны эти переменные

Николай
15.11.2018
08:59:59
Контейнер запущен с CMD ["cron", "-f"] в самом кроне sh файл который выполняет определённое условие, и дергает пайтон приложение которому и нужны эти переменные
не пойму в чем загвоздка. если контейнер при запуске получил переменные окружения, то они будут в контейнере, пусть питон обращается к ним

Shaz
15.11.2018
09:02:23
не пойму в чем загвоздка. если контейнер при запуске получил переменные окружения, то они будут в контейнере, пусть питон обращается к ним
в кроне может быть загвоздка. вроде были какие-то иногда проблемы с переменными окружения и кроном

Артем
15.11.2018
09:02:24
не пойму в чем загвоздка. если контейнер при запуске получил переменные окружения, то они будут в контейнере, пусть питон обращается к ним
если я правильно понимаю при запуске пайтон приложения через sh скрипт он запускается в "изолированном" окружении.. тоесть этих переменных внтури нет

Shaz
15.11.2018
09:04:57
если я правильно понимаю при запуске пайтон приложения через sh скрипт он запускается в "изолированном" окружении.. тоесть этих переменных внтури нет
а что мешает сложить все нужные переменные в какой-то env-файлик, скопирнуть его внутрь контейнера, а там уже передать их через sh или сразу питон на него натравить?

Илья
15.11.2018
09:11:43
Хватит легкие пути! Даешь хардкор!

?
15.11.2018
10:29:22
Подскажите плз, ставлю докер с CentOS 7, по гайду с офф сайта, при запуске докера он ругается что нет цепочек а iptables, кто нибудь знает как решить?

Alex
15.11.2018
10:31:47
Есть у докера проблема с логом с контейнера? запускаю docker logs -f [name], ожидаю вывод как на обычном серваке(логи веб сервера, или логгинг из приложения), но он отличается, как буд-то в контейнера что-то игнорится. При чем иногда все норм и вывод как и ожидалось.... Есть мысли в чем косяк?

Александр
15.11.2018
10:33:56
У меня есть ноут, но он иногда работает как-то не так, как другой такой же у друга. Есть мысли в чём косяк?

Илья
15.11.2018
10:35:48
Это он серьезно троллит

Stefan
15.11.2018
10:36:00
а всё, прочел выше сообщение

Sergey
15.11.2018
10:36:06
ты серьезно? или это такой троллинг?
это было настолько тонко что ты не заметил

Alex
15.11.2018
10:52:22
У меня есть ноут, но он иногда работает как-то не так, как другой такой же у друга. Есть мысли в чём косяк?
а кто у нас у мамки такой умняшка и шутник?...... Инструмент может обладать недостатком, я могу этого не знать, вы можете знать, для этого и задают вопросы...

Google
Александр
15.11.2018
10:53:19
Для начала бы конкретный вопрос, а не свои ощущения)

Попробуйте сами прочитать свой вопрос и понять конкретную проблему)

Официальный образ nginx access и error логи делают симлинками на устройства, которые и являются логом контейнера. Формат этих логов можете настраивать на свой вкус и цвет в конфиге nginx

Nick
15.11.2018
10:57:12
Есть у докера проблема с логом с контейнера? запускаю docker logs -f [name], ожидаю вывод как на обычном серваке(логи веб сервера, или логгинг из приложения), но он отличается, как буд-то в контейнера что-то игнорится. При чем иногда все норм и вывод как и ожидалось.... Есть мысли в чем косяк?
Есть мысль что та версия оси что в контейнере, гонит логи по умолчанию не в stdin\stdout а куда то еще. т.е. неудачный выбор базового слоя контейнера или накатки софта который что то переопределил.

Maxim
15.11.2018
11:27:57
Подскажите пожалуйста, как сделать возможным запуск из php java файла посредством exec. php в докере конфиг такой: version: '3.2' services: php: build: ./configs/php restart: always volumes: - ./app/basic:/var/www/html depends_on: - db - java java: image: openjdk:7что и куда надо ещё написать, что бы из пхп скрипта можно было делать exec('java ......') ?

Ivan
15.11.2018
11:29:21
проще в php image поставить java jdk.rpm

Maxim
15.11.2018
11:30:38
может и не по профилю, не спорю. я однако подозреваю, что пхп просто не видит java, и наверное мой вопрос можно переформулировать, как сделать что бы видел? :)

проще в php image поставить java jdk.rpm
а можно чуток подробнее?

Maxim
15.11.2018
11:31:45
из скрипта

Николай
15.11.2018
11:35:23
твои вкусы специфичны

Antonio
15.11.2018
11:45:24
Building app Step 1/17 : ARG PHP_VERSION=${PHP_VERSION} Step 2/17 : FROM php:${PHP_VERSION}-alpine ERROR: Service 'app' failed to build: invalid reference format что ему не нравится?

Viktor
15.11.2018
11:52:28
$ cat Dockerfile ARG VERSION=${VERSION} FROM myrepo.com/centos:${VERSION} CMD ["tail", "-f", "/bin/bash"] macbook-pro-6:tmp user$ docker build . --build-arg VERSION=7.4.1708 --no-cache Sending build context to Docker daemon 17.92kB Step 1/3 : ARG VERSION=${VERSION} Step 2/3 : FROM myrepo.com/centos:${VERSION} ---> 295a0b2bd8ea Step 3/3 : CMD ["tail", "-f", "/bin/bash"] ---> Running in 402d9c8dbd82 Removing intermediate container 402d9c8dbd82 ---> 31b2d1898365 Successfully built 31b2d1898365

Antonio
15.11.2018
11:53:47
docker-compose build --no-cache

Viktor
15.11.2018
11:54:37
А как он тогда узнает что в PHP_VERSION

Antonio
15.11.2018
11:55:41
docker-compose.yml app: build: context: ./ environment: - PHP_VERSION='7.2' volumes: - ./src:/var/www - ./supervisord.d:/etc/supervisord.d depends_on: - db

Viktor
15.11.2018
11:56:20
environment != build-args

Google
Antonio
15.11.2018
11:58:33
app: build: context: ./ args: - PHP_VERSION='7.2' volumes: - ./src:/var/www - ./supervisord.d:/etc/supervisord.d depends_on: - db

так?

Viktor
15.11.2018
12:00:27
дока говорит что так https://docs.docker.com/compose/compose-file/#build , попробуй, наверное взлетит

Antonio
15.11.2018
12:02:10
теже яйца только в профиль

Viktor
15.11.2018
12:02:20
Ну наверное

Ivan
15.11.2018
12:03:55
а можно чуток подробнее?
1. качаешь нужный тебе jdk.rpm https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2. в PHP Dockerfile пишешь COPY jdk.rpm /tmp RUN rpm -ivh /tmp/jdk.rpm

Antonio
15.11.2018
12:06:32
antik@ubuntu-2gb-nbg1-1:/var/www/laratest$ cat docker-compose.yml version: '3' volumes: dbdata: services: db: image: mysql:8.0.13 command: --default-authentication-plugin=mysql_native_password restart: always env_file: - ./src/.env environment: - MYSQL_DATABASE=${DB_DATABASE} - MYSQL_USER=${DB_USERNAME} - MYSQL_PASSWORD=${DB_PASSWORD} - MYSQL_ROOT_PASSWORD=${DB_ROOT} ports: - "3306:3306" volumes: - dbdata:/var/lib/mysql app: build: context: ./ args: - PHP_VERSION='7.2' volumes: - ./src:/var/www - ./supervisord.d:/etc/supervisord.d depends_on: - db antik@ubuntu-2gb-nbg1-1:/var/www/laratest$ docker-compose build --no-cache WARNING: The DB_DATABASE variable is not set. Defaulting to a blank string. WARNING: The DB_USERNAME variable is not set. Defaulting to a blank string. WARNING: The DB_PASSWORD variable is not set. Defaulting to a blank string. db uses an image, skipping Building app Step 1/17 : ARG PHP_VERSION=${PHP_VERSION} Step 2/17 : FROM php:${PHP_VERSION}-alpine ERROR: Service 'app' failed to build: invalid reference format

Dmitry
15.11.2018
12:24:20
Да кейс отстой! ;-D

Siergiej
15.11.2018
12:52:47


Andrey
15.11.2018
12:55:35
Ну посмотри лог, там будет подробнее

Siergiej
15.11.2018
12:58:40
Ну посмотри лог, там будет подробнее
эти логи можно как-то вручную достать или нужно в circle.yaml прописывать?

Andrey
15.11.2018
12:59:34
эти логи можно как-то вручную достать или нужно в circle.yaml прописывать?
сделайте просто cat, имхо для дебага будет достаточно

Страница 876 из 1375