@docker_ru

Страница 794 из 1375
Robert
23.09.2018
18:05:51
так у меня этот контейнер же завершается, exec относится только к действующим контейнерам
Значит надо разобраться почему он завершается. Когда он завершается, а потом ты делаешь run он запускается вне docker compose, соответственно без подгрузки .env

Sergey
23.09.2018
18:05:58
Sergey
23.09.2018
18:08:47
Значит надо разобраться почему он завершается. Когда он завершается, а потом ты делаешь run он запускается вне docker compose, соответственно без подгрузки .env
завершается потому что нужные переменные окружения не попадают в контейнер, там по умолчанию development окружение, пума настроена только для production окружения, пума завершается и контейнер соответсвенно тоже завершается

Google
Sergey
23.09.2018
18:11:18
Как ты определил, что они не попадают?
docker logs app [1] Puma starting in cluster mode... [1] * Version 3.12.0 (ruby 2.5.1-p57), codename: Llamas in Pajamas [1] * Min threads: 8, max threads: 32 [1] * Environment: development <======================== [1] * Process workers: 4 [1] * Preloading application [1] * Listening on tcp://0.0.0.0:3000 [1] ! WARNING: Detected 1 Thread(s) started in app boot: [1] ! #<Thread:0x00005646e821c9d0@/usr/local/bundle/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:297 sleep> - /usr/local/bundle/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:299:in `sleep' [1] Use Ctrl-C to stop

Robert
23.09.2018
18:11:20
Посмотри логи контейнера, после того как он упал

Ок, а если явно указать значение в докер композе?

Sergey
23.09.2018
18:13:18
не понял, что за command?
COMMAND в докерфайле

Sergey
23.09.2018
18:15:33
Ок, а если явно указать значение в докер композе?
Вот здесь странность, явно указываю - эти переменные все равно не попадают в контейнер. Пробовал по разному переписывать docker-compose.yml вдруг там отступы или лишние строки невидимые влияют - все так же, не помогает

Robert
23.09.2018
18:16:17
Значит не в этом дело, а скорее всего в обработке этих переменных

Сделай как предложили выше, знамени команд на какой-нибудь sh и проверь переменные

Sergey
23.09.2018
18:25:21
Сделай как предложили выше, знамени команд на какой-нибудь sh и проверь переменные
хм, все переменные окружения попадают как надо, загадка спасибо, существенно продвинулся

COMMAND в докерфайле
спасибо, продвинулся

Google
Sergey
23.09.2018
18:28:23
Кирилл
23.09.2018
22:24:22
всем привет, подскажите пожалуйста, можно ли сделать docker-compose файл, в котором будет 2 сервиса использующий один и тот же порт(суть в том что это 2 сервиса которые одновременно никогда не должны работать, но один основной, а второй будет приходить на замену первому не на долго по рассписанию, например что то типа заглушки на время тех работ)

Кирилл
23.09.2018
22:37:39
не совсем понимаю как это поможет, но для уточнения это должны бить именно разные контейнеры

Pink
23.09.2018
22:39:15
не совсем понимаю как это поможет, но для уточнения это должны бить именно разные контейнеры
Тогда, может повесить их на разные порты, а трафик разруливать выше?

Stan
23.09.2018
22:39:48
так причем тут докер? логика будет на уровне этих сервисов, поведение от наличия докера никак не сменится

в tcp в любом случае нельзя на один порт одновременно повесить слушать две аппы, докер тут вообще не при чем

Кирилл
23.09.2018
22:41:06
вопрос в том можно ли в рамках композа их описать и сделать так что бы при его понятии поднимался только основной сервис а потом с хоста с помощью скрипта класть первый, стартовать второй и когда это необходимо обратно класть второй и снова поднимать первый

а на счет 2 порта одновременно это понятно

Stan
23.09.2018
22:41:31
еще раз, докер тут не при чем

Кирилл
23.09.2018
22:43:11
можно, но опять таки сервисы связаны и для лучшего структурирования проекта хотелось сделать в рамках одного, если это технически возможно

Stan
23.09.2018
22:43:18
а вообще если есть такая логика, то делать это на основании двух разных демонов не очень

Stan
23.09.2018
22:44:44
возьми пример всяких 404/500 ошибок в вебсерверах, оно отдается самим основным сервисом

в крайнем случае на лоудбалансере как-то балансить на сервис, который это будет отдавать

Pink
23.09.2018
22:45:11
Кирилл
23.09.2018
22:46:39
А разруливать трафик наверху совсем не хочется?
ещё раз как сделать по другому я представляю, но для того что бы понимать что можно сделать с помощью докера а что нет, интересно узнать, так как от этого зависит дальнейшее формирование других может быть более сложных проектов в которых цена вопрос в виде скриптов будет неоправданно выше, так как они могут стать больше и сложнее.

Вопрос в первую очеред в тех возможности, а не альтернативных подходах

Google
Кирилл
23.09.2018
22:49:05
ещё вопрос на счет того что композер-"описание конечного состояния системы", если в нем описать сервис который не является демоном, его же можно поднять для выполнения какой-то логики не меняя состояния при этом остальных сервисов одного композа?

Pink
23.09.2018
22:49:39
ещё раз как сделать по другому я представляю, но для того что бы понимать что можно сделать с помощью докера а что нет, интересно узнать, так как от этого зависит дальнейшее формирование других может быть более сложных проектов в которых цена вопрос в виде скриптов будет неоправданно выше, так как они могут стать больше и сложнее.
Ну смотрите, изначально Compose предназначен для описания конечного состояния системы, то есть подразумевается, что оба контейнера будут подняты. В вашем случае, предполагается некий костыль чтобы это обойти. Из наименьших костылей я могу предложить: один контейнер на два сервиса с энтрипойнтом; указание портов каждому контейнеру(чтобы в нужный момент контейнер оказывался на нужном порту); кастомную шаблонизацию(рендерить компоуз на лету с нужными параметрами)

Konstantin
23.09.2018
22:51:28
Если делать up -d поверх, то оною просто обновит изменения в ямле

Делаешь одному сервису порт 80:3000, когда надо переключить - меняешь этот порт для другого и еще раз docker-compose up -d

Кирилл
23.09.2018
22:53:06
тоесть изменить порт в yaml сделать up -d поработать с этим потом обратно изменить и снова то же самое, и он просто перекинет порт, я правильно понял?

Konstantin
23.09.2018
22:53:23
Да, он любые изменения применит

Кирилл
23.09.2018
22:53:37
а сами контейнеры при этом будут перезагружены или он просто перепривяжет порты

Konstantin
23.09.2018
22:53:48
Но будет остановка контейнеров

Кирилл
23.09.2018
22:54:29
Спасибо теперь понял) Это не повредит, а на будущее буду учитывать рестарт)

Konstantin
23.09.2018
22:54:34
Тот сервис который был изменён будет пересоздан

Может какие-то параметры не пересоздают таски, не помню

Кирилл
23.09.2018
22:55:23
в смыле контейнер пересоздасться или все таки перезапуститься? (Это не кретично но интересно)

Konstantin
23.09.2018
22:55:43
Лучше конечно проксю повесить перед ними и нормально рулить, смотря какой кейс

Кирилл
23.09.2018
22:56:36
понял спс а на счет прокси когда можно конечно, когда нет хорошо иметь альтернативу, от задачи к задаче)

Konstantin
23.09.2018
22:56:44
Наверное) давно композ не юзал, легко же проверить

Google
Кирилл
23.09.2018
22:56:56
согласен но спросить ещё легче)))

спасибо ещё раз)

Konstantin
23.09.2018
22:57:08
Локально сойдёт точно

Pink
23.09.2018
22:58:33
Локально сойдёт точно
Звучит как production ready :D

Konstantin
23.09.2018
22:59:44
Звучит как production ready :D
Прод проду рознь, раньше хайлоады были построены хуже чем если сейчас просто композ запустить

А у кого-то до сих пор?

Pink
23.09.2018
23:00:40
Ну так-то да...

Pavel
24.09.2018
06:37:37
сделал образ FROM node:8-alpine WORKDIR /app COPY package.json /app RUN npm install COPY . /app EXPOSE 8080 залил на гитлаб реджестри когда в компос сую и собираю говорит web_1 | npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json' почему?

Pavel
24.09.2018
06:41:45
я же его копирую когда образ собираю

Dmitry
24.09.2018
06:46:20
я же его копирую когда образ собираю
Так может его как раз и нет по данному пути в момегт билда?

Dmitry
24.09.2018
06:48:13
А... Может права надо еще ему дать?

Можно удалить стргки после копирования и провериьь в собранном образе файл и права

reskwer
24.09.2018
06:58:00
может не в тему, но гугл ничего не говорит. Кто-то знает как убрать тротл в убунте ? или вообще в линуксе. В гугл все перепробовал, камень сейчас завис на 400мг из 3.2ггц. Все потому что у меня снят кулер

Dmitry
24.09.2018
07:03:25
А как он чувствует есть ли у вас кулер?

Konstantin
24.09.2018
07:06:00
Google
Robert
24.09.2018
07:07:31
Современные системы отлично распознают отсутствие куллера и обычно просто не запускаются

Vasiliy
24.09.2018
07:14:07
А зачем при билде делать npm install и потом ещё раз собирать?
это нода - там так принято. модули нужные поставить.

Konstantin
24.09.2018
07:15:11
Pavel
24.09.2018
07:17:00
ща попробую без npm install

Vasiliy
24.09.2018
07:17:20
Ну блин, не только у ноды)
npm install - только у ноды ?

Konstantin
24.09.2018
07:18:03
Pavel
24.09.2018
07:18:29
а еще вопрос если я пушнул в реджестри и потом рестартнул компос новый образ подхватится или надо --build делать?

Alik
24.09.2018
07:19:44
если тег в docker-compose изменился, то он должен спулить сам

Alik
24.09.2018
07:22:10
не менялся
тогда надо еще pull сделать

Pavel
24.09.2018
07:22:18
спасибо

Станислав
24.09.2018
07:40:47
Всем привет

Как можно узнать на каком ip работает Docker?)

Прописал в hosts 172.17.255.255, но перехожу на сайт там

Unable to connect

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