Mikhail
Mikhail
Тем самым ты запускаешь новый контейнер вне рамок docker compose
Mikhail
exec используй
Serhii
exec используй
так у меня этот контейнер же завершается, exec относится только к действующим контейнерам
Serhii
docker exec Run a command in a running container
Sergo
Serhii
Mikhail
Mikhail
Запустил новый контейнер и не увидел их там?
Mikhail
Естественно их там не будет
Serhii
Как ты определил, что они не попадают?
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
Mikhail
Посмотри логи контейнера, после того как он упал
Mikhail
Ок, а если явно указать значение в докер композе?
Sergo
Serhii
Ок, а если явно указать значение в докер композе?
Вот здесь странность, явно указываю - эти переменные все равно не попадают в контейнер. Пробовал по разному переписывать docker-compose.yml вдруг там отступы или лишние строки невидимые влияют - все так же, не помогает
Mikhail
Значит не в этом дело, а скорее всего в обработке этих переменных
Mikhail
Сделай как предложили выше, знамени команд на какой-нибудь sh и проверь переменные
Konstantin
Sergo
Кирилл
всем привет, подскажите пожалуйста, можно ли сделать docker-compose файл, в котором будет 2 сервиса использующий один и тот же порт(суть в том что это 2 сервиса которые одновременно никогда не должны работать, но один основной, а второй будет приходить на замену первому не на долго по рассписанию, например что то типа заглушки на время тех работ)
アリテミ
Кирилл
не совсем понимаю как это поможет, но для уточнения это должны бить именно разные контейнеры
アリテミ
stanopolous
так причем тут докер? логика будет на уровне этих сервисов, поведение от наличия докера никак не сменится
stanopolous
в tcp в любом случае нельзя на один порт одновременно повесить слушать две аппы, докер тут вообще не при чем
Кирилл
вопрос в том можно ли в рамках композа их описать и сделать так что бы при его понятии поднимался только основной сервис а потом с хоста с помощью скрипта класть первый, стартовать второй и когда это необходимо обратно класть второй и снова поднимать первый
Кирилл
а на счет 2 порта одновременно это понятно
アリテミ
stanopolous
еще раз, докер тут не при чем
アリテミ
Кирилл
можно, но опять таки сервисы связаны и для лучшего структурирования проекта хотелось сделать в рамках одного, если это технически возможно
stanopolous
а вообще если есть такая логика, то делать это на основании двух разных демонов не очень
アリテミ
stanopolous
возьми пример всяких 404/500 ошибок в вебсерверах, оно отдается самим основным сервисом
stanopolous
в крайнем случае на лоудбалансере как-то балансить на сервис, который это будет отдавать
アリテミ
Кирилл
А разруливать трафик наверху совсем не хочется?
ещё раз как сделать по другому я представляю, но для того что бы понимать что можно сделать с помощью докера а что нет, интересно узнать, так как от этого зависит дальнейшее формирование других может быть более сложных проектов в которых цена вопрос в виде скриптов будет неоправданно выше, так как они могут стать больше и сложнее.
Кирилл
Вопрос в первую очеред в тех возможности, а не альтернативных подходах
Кирилл
ещё вопрос на счет того что композер-"описание конечного состояния системы", если в нем описать сервис который не является демоном, его же можно поднять для выполнения какой-то логики не меняя состояния при этом остальных сервисов одного композа?
Konstantin
Кирилл
アリテミ
Кирилл
Konstantin
Если делать up -d поверх, то оною просто обновит изменения в ямле
Konstantin
Делаешь одному сервису порт 80:3000, когда надо переключить - меняешь этот порт для другого и еще раз docker-compose up -d
Кирилл
тоесть изменить порт в yaml сделать up -d поработать с этим потом обратно изменить и снова то же самое, и он просто перекинет порт, я правильно понял?
Konstantin
Да, он любые изменения применит
Кирилл
а сами контейнеры при этом будут перезагружены или он просто перепривяжет порты
Konstantin
Но будет остановка контейнеров
Кирилл
Спасибо теперь понял) Это не повредит, а на будущее буду учитывать рестарт)
Konstantin
Тот сервис который был изменён будет пересоздан
Konstantin
Может какие-то параметры не пересоздают таски, не помню
Кирилл
в смыле контейнер пересоздасться или все таки перезапуститься? (Это не кретично но интересно)
Konstantin
Лучше конечно проксю повесить перед ними и нормально рулить, смотря какой кейс
Konstantin
Кирилл
понял спс а на счет прокси когда можно конечно, когда нет хорошо иметь альтернативу, от задачи к задаче)
Konstantin
Наверное) давно композ не юзал, легко же проверить
Кирилл
согласен но спросить ещё легче)))
Кирилл
спасибо ещё раз)
Konstantin
Konstantin
Локально сойдёт точно
Konstantin
А у кого-то до сих пор🙄
アリテミ
Ну так-то да...
pavel
сделал образ
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'
почему?
Sergey
Johnny
pavel
я же его копирую когда образ собираю
pavel
Dmitry
А... Может права надо еще ему дать?
Dmitry
Можно удалить стргки после копирования и провериьь в собранном образе файл и права
Sergey
может не в тему, но гугл ничего не говорит.
Кто-то знает как убрать тротл в убунте ? или вообще в линуксе.
В гугл все перепробовал, камень сейчас завис на 400мг из 3.2ггц.
Все потому что у меня снят кулер