Джифорсович
да видел конечно же меня хотели сделать 1сником
Джифорсович
я послал искать людей для обслуживания 1с где-то в вузах, может быть, такое счастье мне не надо
Vitaly
1с вообще бесперспективно в плане развития, этот продукт только на локальном рынке снг живет
Vitaly
За границей он никому ненужен. Соответственно денег в этом направлении нет
Джифорсович
мне всерьез говорили что 1сники много получают, выучи и будешь зарабатывать
Vitaly
Все познается в сравнении :)
Anonymous
Друзья, кто-нибудь работал с контейниризацией node-js микросервисов? Необходимо собрать несколько сервисов из одного репозитория, зависимости у них прописаны в одном package.json и соответсвенно каждому контейнеру нужны свои зависимости, как их передать в контейнер? Есть вариант хранить node_modules в общем томе и прокидывать через volume либо для каждого контейнера устанавливать свои зависимости из разных package.json, но техлид эти варианты отмёл. Общаются сервисы по очередям, через воркеров bullMQ, кеширует redis. Хз, что он хочет ещё. Какие вообще best practice существуют по архитектуре микросервисов? "один репозиторий на все 3 приложения (http server + 2 ms) - 1 package.json - три разных Dockerfile, для каждого мс - 1 общий docker-compose.yml - volumes - нет" такие вводные
Anonymous
Выглядит как задача для какого-нибудь ng
Anonymous
Но вообще меня поражает всегда стремления делать микросервисы но с одним файлом зависимостей
Anonymous
Их суть в независимости
Anonymous
Lerna ещё можно посмотреть, в общем менеджеры монорепозиториев под году или просто гибкие.
Anonymous
Или вон как у на моем проекте новом никак не разгребу: для каждого сервиса общий package.Jason патчится при сборке
Artyom
Друзья, кто-нибудь работал с контейниризацией node-js микросервисов? Необходимо собрать несколько сервисов из одного репозитория, зависимости у них прописаны в одном package.json и соответсвенно каждому контейнеру нужны свои зависимости, как их передать в контейнер? Есть вариант хранить node_modules в общем томе и прокидывать через volume либо для каждого контейнера устанавливать свои зависимости из разных package.json, но техлид эти варианты отмёл. Общаются сервисы по очередям, через воркеров bullMQ, кеширует redis. Хз, что он хочет ещё. Какие вообще best practice существуют по архитектуре микросервисов? "один репозиторий на все 3 приложения (http server + 2 ms) - 1 package.json - три разных Dockerfile, для каждого мс - 1 общий docker-compose.yml - volumes - нет" такие вводные
Подкорректируй Dockerfile. Тебе нужна многоступенчатая сборка. На первом этапе ты копируешь исходники. Выполняешь ровно 2 команды: npm ci && npm run build Создаётся production build. На втором этапе используешь в качестве базового образа nginx. Копируешь из предыдущего этапа собранное приложение в default site
Artyom
сложновато звучит для меня :( Мне кажется что от меня хотят какое-то более просто и прямолинейное решение задачи.
Вот пример: https://gist.github.com/anonymous/0bd28c5a53a61d8850433f62f6cf85de#file-dockerfile yarn можно заменить на npm
Anonymous
это что тестовое задание?)
Не тестовое, но в какой-то степени учебное
Roman
Не тестовое, но в какой-то степени учебное
надо не передавать зависимости внутрь, а билдить. просто каждый отдельно билдить
Сергей
Доброго времени коллеги, подскажите каким альтернативным инструментом можно было бы заменить supervisor в контейнере
Сергей
двумя контейнерами?
может есть наповерхности другой вариант но я его не вижу , если в кратце, есть контейнер Symfony PHP в котором в данный момент запускается множество команд считывающих очередь из Rebbitmq
Anonymous
в соседнем чате
Сергей
аа ну да)
Сергей
только это не решит проблему, запуск воркера происходит из кода приложения если использовать registry то по предложенной схеме придётся в каждый контейнер ложить код приложения
Anonymous
ну да, более того один образ просто разные кмд
Сергей
Vitaliy
В докер-композе три сервиса... Приложение + база данных и админка для БД. Прописана зависимость загрузки - все ждут когда загрузится база. Но почему-то приложение грузится то самым первым, то во время инициализиции базы... Что за нах?
Vitaliy
version: "3.7" services: dpt_app: image: ${APP_NAME}:${VERSION} container_name: ${APP_NAME}_${VERSION} volumes: - ./app/dpt_application:/app/dpt_application restart: "no" ports: - ${PORT}:${PORT} environment: - PORT=${PORT} - HOST=${HOST} - PLATFORM_URL=${LOCAL_URL} - VERSION=${VERSION} - DB_HOST=${DB_HOST} command: sh -c "(cd /app && ./dpt_application)" networks: - dpt depends_on: - db adminer: image: adminer restart: "no" ports: - 8082:8080 depends_on: - db volumes: - adminer:/var/lib/adminer/storage db: image: postgres:13-alpine restart: "no" volumes: - db_data:/var/lib/postgresql/data/ environment: - POSTGRES_PASSWORD=password - POSTGRES_USER=postgres - POSTGRES_DB=dpt_data - DB_PORT=5432 - PGDATA=/var/lib/postgresql/data/ ports: - 5432:5432 networks: - dpt volumes: db_data: adminer: networks: dpt:
Anonymous
ожидаемое поведение
Anonymous
ждут создания сервиса по депендсон а не когда он раздуплится
Semyon
Мужики помоготе, при взаимодействии с редисом туда добавляются неизвестные ключи по типу 751) "HA2" или 734) "Back4". Я так понимаю это делается бэкап, кто сталкивался и знает как отключить это?
Евгений
всем привет, только начал изучать докер, и не всё ещё понятно. Подскажите, пожалуйста, вот есть образ ubuntu в докерхабе, для чего он? Чтобы ставить на другие unix системы для 'эмуляции' именно убунты? ведь нельзя же поставить ubuntu в контейнере на докер в host os windows. Или можно?
Евгений
wsl2 на вин10. Ещё сырое и нетанцованное. Но уже что-то умеет.
я немного не к тому. я понял, что докер виртуализирует процессы, а не системы. Т.е. если у меня на сервере уже стоит убунту, то образ с убунту мне ни к чему, беру образ с питоном, к примеру, за основу и работаю с ним. Верно? А образ с убунту мне нужен был бы, если бы мой микросервис писался под убунту, а на сервере стоял бы другой *nix
Anonymous
запустить можно на винде убунту
Евгений
ставить - неправильное слово. запустить
я только вчера начал читать мануалы, пока терминология ещё не въелась в подкорку. спасибо)
Max xbim 🌴
wsl2 на вин10. Ещё сырое и нетанцованное. Но уже что-то умеет.
Для девклопмента на коленке справляется)
Div
Для девклопмента на коленке справляется)
А потом и выходит субпродукт
Max xbim 🌴
А потом и выходит субпродукт
тестируют уже не там)
Div
докер ничего не виртуализирует
Соглашусь. Это надстройка над ядром.
Div
Изоляции почти ноль от основного окружения
Anonymous
нативный   WSL, обычные виртуалки и как вариант виртуалка WSL2
Max xbim 🌴
wsl1 не уммет запускать контейнеры там ток клиент можно юзать
Div
Вот я только хотел сказать что wsl это огрызок.
Div
Второй уже с полноценным ядром но коммуникации ещё сырые. Особенно сеть
Div
И оба провоцируют голубой экран
Anonymous
wsl1 не уммет запускать контейнеры там ток клиент можно юзать
разве? вроде писал кто-то что можно/ Но ладно тогда 1,5 способа ) в виртуалке только
Div
Первый инсталлер докера тянул virtualbox. Ух и гадость это была...
Anonymous
вчера кстати запустил докер на мак м1 нативный ) вроде поднялся
Anonymous
в смысле арм образы запускаются
Anonymous
еще не закончили, но многое уже работает
Anonymous
не работают прежде всего всякие фишки докер-десктопа именно типа кубер одним кликом поднять
Max xbim 🌴
На m1, офтоп
Anonymous
а просто как на компе беез докера? работает вроде ) эмулятор интела они классный запилили
Вадим
пытаюсь в контейнере под юзером "node" создавать папку в подключенном вольюме и получаю ошибку: can't create directory '/var/www/1.0.0': Permission denied если при сборке образа убрать USER node - все работает как в такой ситуации создавать папку и писать в нее файлы?
Вадим
Artyom
мне нужно из сервиса на node.js (
Тогда так пропиши в Dockerfile: RUN sudo chown -R node:node /var/www/ && sudo chmod a+rx -R /var/www/ && sudo chmod u+w -R /var/www/
Artyom
Это поможет твоему приложению, которое запущено от имени node, писать в путь /var/www/
Artyom
По идее, должно помочь
Вадим
По идее, должно помочь
спасибо сейчас попробую
Вадим
По идее, должно помочь
👍все работает!
Вадим
есть такая строковая опция в конфиге loki log driver loki-relabel-config: | - action: labelmap regex: swarm_stack replacement: stack - action: labelmap regex: swarm_(service) - action: labeldrop regex: swarm_stack - action: labeldrop regex: swarm_service - action: labeldrop regex: filename она у некоторых сервисов является общей частью + еще несколько дополнительных элементов как можно смержить такие строки? пытаюсь так x-logging: &std_loki_relabel_list | - action: labelmap regex: swarm_stack replacement: stack - action: labelmap regex: swarm_(service) - action: labeldrop regex: swarm_stack - action: labeldrop regex: swarm_service - action: labeldrop regex: filename ..... гдето в описании сервиса logging: driver: 'loki' options: loki-relabel-config: | - *std_loki_relabel_list ругается пробовал и без | вставлять - тоже ругается я в ямле не силен а гугл упорно скрывает от меня все сокровенные тайны ямла!
Anonymous
а причём тут докер?
Вадим
У ямл есть словарь и список. Почитайте.
читал но там нет случая с форматированной строкой
Вадим
а причём тут докер?
потому что ямл применительно к docker-compose )
Denis
если я все правильно понимаю у вас строка
Denis
а строки не помёрджить как бы.