Georgiy
именно обновления
Alexey
Georgiy
потому что это все придеться перезакачивать каждый раз
Alexey
Хм... Ну.. Тогда все же я думаю будет удобнее мне скачивать из вне для начала, а уже когда все будет готово, то можно в докер внутрь запихать, чтоб клиент не мучался
bama^boy
данные можно динамически изменять без перезапуска контейнера и пересборки образа
Georgiy
Georgiy
давно не получали локи на сисколлах?
Georgiy
так что все равно придеться решать кейс доставки их до хранилища
bama^boy
монтировать по nfs это фейспальм
вполне себе нормальная практика, смотря для чего конечно
локи скорей всего из-за неправильной архитектуры приложения, если много процессов работает с 1 файлом, например
Georgiy
Georgiy
вот сеть моргнет, и у вас висящий сисколл с неприбивающимся процессом по девятке
bama^boy
я работаю с AWS EFS, это сетевая FS от амазона, проблем с ней почти нет, последний раз было что-то с локами около полугода назад
bama^boy
bama^boy
я не говорю, что nfs - это серебряная пуля, это один из широко используемых стандартов в индустрии
есть еще всякие iscsi nas и т.п.
George
как бы зависит от постановки задачи. Как часто тебе нужно катить новую версию модели, нужен ли откат, умеет ли контейнер переобучаться или только использует предрасчитанные веса
Alexey
Новые версии не слишком часто, откаты пока не важны, использует только предрасчитанные веса
George
George
в смысле - одной версии?
Alexey
Да
George
тогда вообще забей и вшивай веса внутрь образа
Alexey
Понял, спасибо всем большое! )
И еще, есть у кого может ссылка рядом с примером из практики как все это сделать от и до для нейронных сетей? Я просто гуглю и там два варианта: либо это использование уже сгенеренных образов, либо создание что-то вроде почтового сервиса с подключением БД
George
ээээ. не понимаю
George
я вообще все модели собирал из базового alpine. Путем доустановки всего необходимого ПО
Alexey
Ну... Скажу так, читать про докер я начал часа 3 назад )
В теории что да как я вроде понял, на практике, не очень понимаю как это устроено
George
кратко - докер - это типа git, но для бинарных файлов
George
образ = набор слоев файловых систем.
Alexey
То есть получается sudo docker run ... *** поместит все файлы из папки *** в образ, а при запуске образа выполнятся все инструкции из Dockerfile?
Artur
почти
Artur
на основе докерфайла "копмилится" имейдж
Alexey
Страшные вещи, как docker composer пока не считаю )
Alexey
Понял, спасибо
George
Artur
а docker run уже запускает этот имейдж
George
docker run запускает его в рантайм
Alexey
Ой, да, перепутал
George
причем ты можешь выбрать какую программу запустить из образа путем переопределения entrypoint ИЛИ cmd, ИЛИ обоих параметров
Alexey
Ага, видел про CMD, спасибо
George
там много нюансов )
Artur
entrypoint не переопределяется же
Artur
при запуске
George
кратко:
- может взорваться где угодно
- entrypoint обычно для постоянной части (например, полный путь к бинарю)
- cmd - преимущественно для переменной части (например, аргументы и ключи)
Artur
"Note: you can override the ENTRYPOINT setting using --entrypoint, but this can only set the binary to exec (no sh -c will be used)."
не стоит так делать
George
George
например, при глубокой отладке docker образов
Artur
какае-то не правильная отладка у вас
Artur
и как после такой отладки убиваете контейнер ?
Artur
киллом ?
George
киллом ?
docker run -it --rm --entrypoint /bin/bash nginx
George
например, удобно чтобы доустановить пакеты ) и проверить сразу работоспособность
Sergey
https://github.com/pyouroboros/ouroboros
Sergey
Юзал кто?
Дмитрий
Кто использовал dnsmasq, посмотрите, изнутри контейнера разве не должен грепаться DNS-сервер локальный?
Дмитрий
https://pastebin.com/DkcETPJ4
Илья
Три новых юзера, на ботов прям смахивают))
Илья
)
Ильдар
Dmitry
Привет! Подскажите пожалуйста, как я могу обновить только последний слой образа? Проблема в том, что мне нужно обновить requirements.txt, но проект целиком билдить нельзя (это займет очень много времени). Может быть как-то можно установить pip3 пакет, чтобы они сохранились после перезапуска образа? Спасибо
Ильдар
Dmitry
FROM ubuntu:18.04
ENV LANG C.UTF-8
ENV PYTHONUNBUFFERED 1
ENV C_FORCE_ROOT true
# Install dependencies
RUN apt-get update \
&& apt-get install -y git \
&& apt-get install -y python3-dev python3-pip \
&& apt-get install -y binutils libproj-dev gdal-bin \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python \
&& pip3 install --upgrade pip
RUN git clone https://git.skewed.de/count0/graph-tool.git
# graph-tool compile dependencies
RUN apt-get update \
&& apt-get install -y gcc libboost-all-dev \
&& apt-get install -y autotools-dev automake pkg-config \
&& apt-get install -y libcgal-dev libcairo2-dev cairomm-1.0 \
&& apt-get install -y python3-cairo-dev libsparsehash-dev
RUN pip install numpy scipy
# graph-tool compile
RUN cd graph-tool && ./autogen.sh && ./configure && make && make install
# Project specific setups
RUN mkdir /code
WORKDIR /code
ADD . /code
RUN pip3 install -r requirements.txt
Ильдар
кошерный докерфайл. при изменении файлов в рабочей папке изменятся только два последних слоя.
Ильдар
вопрос решён?
Дмитрий
Ну если раньше докер собирался и остался кэш - то можно и заново запустить )
Dmitry
Dmitry
Dmitry
это говно компилируется 2 дня
Dmitry
Dmitry
и не уверен, что нужный софт есть на в этом пакете (последня функция появилась только в гите совсем недавно, а без нее кладбище гроб)
Dmitry
Vladislav 👻
Я что-то запутался, разве прун чистит сборочный кэш? 🤔
Vladislav 👻
Мне всегда казалось, что надо флаг при сборке указать...