сергей кузьмин, делать новую версию образа несколько раз в день? вы смеетесь) разработчик за день добавляет по несколько пакетов в свой проект и запускает сборщик. А фронтэнд разработчик вообще при каждом сохранении проекта запускает сборщик автоматически.
Точно так же как разработчик запускает своё приложение много раз на дню и в этот момент отрабатывает node потому что вызывается команда npm run serve. и где вы думаете должна запуститься эта команда? Правильно! на сервере. Потому что докеры нам нужны как раз как окружение, а локальная машина нужна лишь в качестве блокнота для набивки кода.
Повторюсь - вы однобоко оцениваете инструмент. Для девопса это контейнер для деплоймента. А для программиста это виртуальная машина - не более.
То же самое можно сказать про корову. Для Индийцев это священное животное - культ поклонения.
Для мясоедов это источник мяса.
для молочного комбината это источник молочной продукции.
для пожелых женщин это источник шерсти.
Каждый использует по своему предназначению и нельзя сказать для чего это предназначено.
Если бы докер был просто для деплоймента, то его не использовали программисты. Они бы вели себе спокойно разработку одного проекта на своем компьютере, а когда нужно было бы переходить к другому проекту, то они бы сносили конфликтующие версии пакетов и переходили к другому. Но почему то программисты без докеров сейчас не работают.
Контейнер - это виртуалка в которой есть образ нужного стека и этот образ не просто висит где-то, а там активно выполняются процессы в том числе и различные сборщики, воркеры.
Например, брокер сообщений Kibana по вашему не должна отрабатывать в контейнере? Запускать скрипты, которые тоже будут выполняться в контейнере.
сергей кузьмин, у вас скрипт запускает установку библиотек nodejs но если нам понадобится в проекте грохнуть папку node_modules и потом снова запустить npm i надо же чтобы как то нода снова запустила сборку пакетов. Например, если в package.json добавили новую зависимость. вот она зачем нужна на постоянной основе (
сергей кузьмин, в php фреймворках сборщики запускаются из корня. они создают папки node_modules где хранятся все нужные либы для ноды и vendor для пакетов php. А докеры используются для того, чтобы воссоздать на любом железе экосистему необходимую для запуска и разработки проекта чтоб каждый разработчик команды мог у себя локально развернуть проект и работать с ним и использовать контейнеры для взаимодействия с нужными языками программирования (с нужным стеком). Иначе как разработчики должны вести разработку если у них разные операционные системы?
А то что касается дейплоймента - это второе предназначение контейнеров. А вы как то с одного боку подходите к этому. Если у разработчика на поддержке несколько проектов с разным стеком, то как он по вашему должен работать? на каждый проект ставить отдельный компьютер? это нереально. Или устанавливать сразу разные версии библиотек и языков программирования? тоже не вариант.
сергей кузьмин, я и так работаю на Линуксе и у меня без проблем всё работает если установлю нужные версии. Но вы не понимаете. Докер для разработки еще как используется. Когда у тебя несколько проектов и каждый требует технологию своей версии. Как раз для продакшена можно и без докера обойтись, чтоб не иметь посредников между железом и операционной системой, а вот на локальной машине нужны контейнеры разными версиями php чтоб в зависимости от проекта использовать тот или иной. так же с базами данных. Ну а нода - она нужна только для того чтобы запускать сборщик время от времени поэтому ее лучше просто установить вовнутрь конкретного контейнера.
а как сделать чтоб он туда попал? ведь мы скачиваем образ, в котором нет этого файла.
а мне пришлось скачать этот файл и положить в папку проекта на локальной машине + еще на всякий случай в папку где лежит Dockerfile для node и думал что вот этот файл как то скопируется куда вы сказали командой
COPY docker-entrypoint.sh /usr/local/bin/
а как должно быть и куда его надо положить до разворачивания докера чтоб он скопировался в контейнер командой
COPY docker-entrypoint.sh /usr/local/bin/
сергей кузьмин, я не знал куда его положить. скачал его с git и положил в двух экземплярах - один в папку проекта на локальной машине, а второй в папку где лежит Dockerfile от node.
Василий Банников, я так понимаю уровень мидла определяется не только знанием языка и основного фреймворка, но и инфраструктуры, которая отличается в разных языках программирования. Нужно инфаструктуру подтягивать а для этого постажироваться где-нибудь на opensource проекте так чтоб взяли в команду и дали все инструменты?
denn, не верю. я видел таблицы сравнения. нет там никакого выигрыша по сравнению с 8 версией mysql.
во вторых для сайта визитки на вордпрессе разницы никакой. а для крупных проектов всеравно я бы взял postgreSQL
под конец не понялл. что значит можно будет фреймворки юзать, если все будет на одном сайте?
насчет сайта - отпадает. не будет там это работать. Но можно сделать чат, который будет работать через обновление страницы. А на почту будет приходить уведомление когда пришло сообщение.
Точно так же как разработчик запускает своё приложение много раз на дню и в этот момент отрабатывает node потому что вызывается команда npm run serve. и где вы думаете должна запуститься эта команда? Правильно! на сервере. Потому что докеры нам нужны как раз как окружение, а локальная машина нужна лишь в качестве блокнота для набивки кода.
Повторюсь - вы однобоко оцениваете инструмент. Для девопса это контейнер для деплоймента. А для программиста это виртуальная машина - не более.
То же самое можно сказать про корову. Для Индийцев это священное животное - культ поклонения.
Для мясоедов это источник мяса.
для молочного комбината это источник молочной продукции.
для пожелых женщин это источник шерсти.
Каждый использует по своему предназначению и нельзя сказать для чего это предназначено.
Если бы докер был просто для деплоймента, то его не использовали программисты. Они бы вели себе спокойно разработку одного проекта на своем компьютере, а когда нужно было бы переходить к другому проекту, то они бы сносили конфликтующие версии пакетов и переходили к другому. Но почему то программисты без докеров сейчас не работают.
Контейнер - это виртуалка в которой есть образ нужного стека и этот образ не просто висит где-то, а там активно выполняются процессы в том числе и различные сборщики, воркеры.
Например, брокер сообщений Kibana по вашему не должна отрабатывать в контейнере? Запускать скрипты, которые тоже будут выполняться в контейнере.