Stripe
Рубикон
Управление вычислениями Курс посвящен изучению инструментария для работы с данными, автоматизации анализа и обеспечению воспроизводимости. https://stepik.org/course/Управление-вычислениями-1612/ Кидаться этим линком во всех, чтоли..
Arczi
Парни как могу на удаленном компe втянуть новую базу на контейнер ? cat ./db/some_DB.sql | ssh ogor2@192.168.0.163 'cat - | docker exec -i someContener -u some -d some' не работает пишет что docker команда не существует
Рубикон
А на том удаленном докер из под юзеоа дрступен?
Arczi
если войду нормаль то да работает
Anton
which docker а потом ssh ogor2@192.168.0.163 'echo $PATH' если вывод which не будет присутствовать в PATH - то указывай полный путь
Anonymous
Доброго дня! Коллеги, есть вопрос по сборке контейнера с mongo. Задача - подготовить образ с mongo, в которой уже будет создана база, коллекция и документ. Этот образ нужен разработчикам для прогона тестов своего приложения. Заполнение базы в mongo реализовано с помощью маленького скрипта с использованием pymongo. Чисто практически я могу запустить контейнер с mongo. Запустить скрипт с локальной машины и залить документ в коллекцию. Потом просто сделать commit контейнеру. И отдать получившийся образ разрабам. Но вот вопрос. Как всё тоже самое можно сделать через Dockerfile?
Рубикон
Эм
kSandr
)
Anonymous
О! Интересное решение )))
Рубикон
George
мы делали по-другому
George
делаешь бекап. Запекаешь его в образ
kSandr
О! Интересное решение )))
вообще не делай, просто прложи дамп и загружай его при старте
George
а потом загружаешь через скрипт при старте
Рубикон
Есть еще "путь упоротых джедаев", но .. это не то что над повторять
George
скопируй файлы базы
ну, есть нюанс. описал как верно
Anton
вообще не делай, просто прложи дамп и загружай его при старте
это злое решение. дамп может быть большим. проще бинарь подготовленный добавить
Рубикон
Могда вроде при старте умеет тягать дамп
kSandr
незнаю как у мое и, но у постгре вообще есть механизма иницииации с дампом
Anton
мне такой контейнер доставался, у разрабов оно час в итоге стартовало
George
или тягать дамп отдельно?
Anonymous
а потом загружаешь через скрипт при старте
Так я могу и свой скрипт с pymongo запустить при старте контейнера с mongo. Но не знаю как это сделать правильно
George
у тебя все равно долгий старт будет. Фиг ли делать
Anonymous
Да
Anton
я делал сборку стейджами. на первой итерации CI заливал дамп, вытаскивал бинари через copy + —volumes-from на второй стадии собирал жирный образ с бинарями данных
Anton
можно на старте это скачивать, да
Anton
тогда время уходило только при pull контейнера
Anton
а на старте уже кика не было
Anonymous
У меня сценарий написан в Gitlab CI. При прогоне сценария падает билд. Они не могут разобраться почему. Просят им сделать образ, с таким же скриптом, чтобы у себя локально с ним протестить сборку приложения
George
объем бд?
Anton
ну или время работы скрипта наполнения
Рубикон
там те надо супервизор хитро поднять.. но да мультистейдж таки будет лучше
Рубикон
Только бальшаая портянка будет
Anonymous
Да говорю же, один документ. Беру голую монгу и заливаю ей скриптом один документ. #!/usr/bin/python3 import pprint import pymongo from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') db = client['loadtesting'] collection = db['server'] post = { "_id" : "598b155c798d7a155404e4f5", "name" : "DIND", "ip" : "127.0.0.1", "port" : 2375, "_class" : "testrunner.models.Server" } collection.insert_one(post)
Anton
да ладно. я строк в 200 уложился с заливкой 5 дампов мускуля
Anonymous
ну тогда можно на старте дамп импортить
Пардон, за тупизну. Но как? В entrypoint.sh добавить после команды старта монги?
Anonymous
COPY docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 27017 CMD ["mongod"] Это конец Dockerfile от mongo:latest
Anton
за монгу конкретно не скажу, но обычно (на примере мускуля и постгри) в скрипте запуска указана директория и в ней паттерн файлов. туда монтируешь дамп и оно на старте само всасывает
Anton
но надо будет пойти прочитать их docker-entrypoint.sh перед этим, тут да
Anonymous
Понял идею. Благодарю
Andrei
Периодически ловлю Unexpected error value: "{\"error\":\"error rpc error: code = Unknown desc = Post http://graphql:4000/graphql: dial tcp 10.0.47.108:4000: connect: connection refused\"} в docker compose куда копать?
[IPT] Dmitry
cat /etc/docker/daemon.json { "userland-proxy": false, "iptables": false } Chain DOCKER-USER (1 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0 ЧЯНДТ? или эта норм?
George
в чем проблема?
George
тебе не нравится, что оно создало говно правило, которое нигде не играет?
[IPT] Dmitry
да
[IPT] Dmitry
это похоже на баг
[IPT] Dmitry
https://github.com/docker/for-linux/issues/136
[IPT] Dmitry
но неужели непофикшено?
[IPT] Dmitry
Docker version 19.03.1, build 74b1e89
George
да
ну, на твоем месте я бы не парился, если оно реально ничему не мешает
[IPT] Dmitry
docker daemon.json "network_mode" host а можно как-то так сделать всему докеру сразу?
[IPT] Dmitry
нам его изоляция то не особо нужна, например
RE
камрадос, вопрос про docker stack. есть сервис FOO, который нужно разнести на разные ноды - n1 и n2 добавляю на обе ноды метку: docker node update --label-add foo=true n1 docker node update --label-add foo=true n2 в стек файле пишу foo-service: image: foo-service:latest deploy: mode: replicated replicas: 2 placement: constraints: - 'node.labels.foo == true' ports: - '9999:9999' и при запуске докер стартует ОБЕ реплики на n1. или на n2. еще ни разу не видел, чтобы они были разнесены по разным нодам. причем по какойто причине НЕ происходит конфликта из-за использования одинакового порта.\ чето я не понимаю, что происходит, но как же разнести реплики по разным нодам?
[IPT] Dmitry
как добавить то? я что-то не нашёл описания и синтаксиса
George
ща
George
есть два способа конфигурации докер демона
George
они пересекаются
George
1. файл
George
2. опции командной строки
George
https://docs.docker.com/engine/reference/commandline/dockerd/
[IPT] Dmitry
Ну да, на уровне демона
George
нет, нет такой опции
[IPT] Dmitry
1. файл
Это daemon.json? Я туда наугад пробовал - не вышло
George
короче, нет опции.
George
придется доверять твоим разрабам, что они случайно бридж не активируют
George
но ты можешь деплоить сольтом )
George
и в нем задать шаблон для контейнера )