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
kSandr
)
Anonymous
О! Интересное решение )))
Рубикон
George
мы делали по-другому
George
делаешь бекап. Запекаешь его в образ
George
а потом загружаешь через скрипт при старте
Рубикон
Есть еще "путь упоротых джедаев", но .. это не то что над повторять
George
Рубикон
Могда вроде при старте умеет тягать дамп
kSandr
незнаю как у мое и, но у постгре вообще есть механизма иницииации с дампом
George
Anton
мне такой контейнер доставался, у разрабов оно час в итоге стартовало
George
George
или тягать дамп отдельно?
George
у тебя все равно долгий старт будет. Фиг ли делать
George
Anonymous
Да
Anton
я делал сборку стейджами. на первой итерации CI заливал дамп, вытаскивал бинари через copy + —volumes-from
на второй стадии собирал жирный образ с бинарями данных
Anton
можно на старте это скачивать, да
Anton
тогда время уходило только при pull контейнера
Anton
а на старте уже кика не было
Anonymous
У меня сценарий написан в Gitlab CI.
При прогоне сценария падает билд. Они не могут разобраться почему.
Просят им сделать образ, с таким же скриптом, чтобы у себя локально с ним протестить сборку приложения
George
объем бд?
Anton
ну или время работы скрипта наполнения
George
George
Рубикон
там те надо супервизор хитро поднять.. но да мультистейдж таки будет лучше
Рубикон
Только бальшаая портянка будет
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
Anton
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
нам его изоляция то не особо нужна, например
kSandr
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
они пересекаются
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
но ты можешь деплоить сольтом )
George
и в нем задать шаблон для контейнера )