Миолаэ
12.12.2018
10:06:16
А подскажи еще, пожалуйста, как сделать файлы в volume доступными для редактирования юзером на хосте? Для того и добавлял user: 1000:1000, но этот вариант не прокатывает, сервис db не виден из app.
Если можно - наведи на литературу, которая поможет понять, как связана настройка user и видимость сервиса из другого сервиса.
Нужно это для ci/cd кейсов. Тесты повторно не запускаются, т.к. у юзера раннера нет прав удалить файлы БД.
Или это каким-то другим способом решать лучше?
Zulcom
12.12.2018
10:36:25
Миолаэ
12.12.2018
10:36:49
Google
Zulcom
12.12.2018
10:38:02
https://habr.com/post/425101/
Миолаэ
12.12.2018
10:38:14
Спасибо, прочту
Илья
12.12.2018
10:54:24
А попробуй docker logs
или как там оно
Миолаэ
12.12.2018
10:59:18
Вооо, спасибо)
У докера прекрасная документация, но когда не знаешь, что в ней есть и что там искать - малоэффективная :(
2018-12-12T10:57:05.099682Z 0 [ERROR] [MY-010460] [Server] --initialize specified but the data directory exists and is not writable. Aborting.
2018-12-12T10:57:05.099699Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/lib/mysql/ is unusable. You can safely remove it.
2018-12-12T10:57:05.099887Z 0 [ERROR] [MY-010119] [Server] Aborting
Чет я без мыслей, как это разрешить
Запускаю так:
sudo rm -rf .docker/mysql-data/db/*
docker-compose up -d
поставил права 777 на папку с данными мускула - и работает.... пока :)
Konstantin
12.12.2018
11:22:53
леченье всех бед
Google
Илья
12.12.2018
11:23:32
ШУТКА
Джон
12.12.2018
11:23:35
Konstantin
12.12.2018
11:23:53
Джон
12.12.2018
11:24:01
Ренат
12.12.2018
11:55:10
Кто нибудь может объяснить что такое "Сетевые контейнеры"?
Andrey
12.12.2018
11:55:59
arts
12.12.2018
11:56:22
Konstantin
12.12.2018
11:56:31
ildar
12.12.2018
12:04:19
Ренат
12.12.2018
12:17:50
Konstantin
12.12.2018
12:23:33
волумные стораджи есть?
ildar
12.12.2018
12:26:45
Viktor
12.12.2018
12:27:27
Хай
dockerd[2767]: time="2018-12-12T14:28:27.508420040+03:00" level=error msg="Handler for GET /v1.30/containers/json returned error: write unix /var/run/docker.sock->@: write: broken pipe"
Сразу после этого умирает сеть, лагает докер:
docker stop
отрабатывает без ошибок, при этом не останавливая контейнеры, проброшенные порты отвечают Connection refused
Приходилось кому-то сталкиваться?
Не Глеб
12.12.2018
13:07:43
Подскажите пожалуйста, как в поде кубернетеса запустить 2 комманды на параллельное выполнение?
ildar
12.12.2018
13:15:16
Konstantin
12.12.2018
13:32:03
перевалочный пункт ?
Миолаэ
12.12.2018
14:56:22
Никак не найду хороший способ сделать так, чтобы подключенные через volume файлы спокойно редактировались потом на хосте :(
Подскажите решение, пожалуйста
какие адекватные есть...
Google
Viktor
12.12.2018
15:07:27
Миолаэ
12.12.2018
15:09:03
Сегодня весь день гугл мучаю и сам экспериментирую. Если прокидываю в контейнер код приложения как volume, ту же папку vendor он под рутом скачивает. Либо выполняет команду от моего юзера (добавляю в docker-compose user: "${USER_ID:-1000}:${GROUP_ID:-1000}", но при этом недоступна папка ~/.composer/cache, что на порядки увеличивает время установки пакетов. А при билде юзера, под которым будут выполняться команды, еще не существует. Соответственно, нельзя сделать chown.
Evgeny
12.12.2018
15:11:34
Оно?
Миолаэ
12.12.2018
15:29:17
Не понял, каким образом мне редактировать файлы, не подключаясь при этом к контейнерному bash. Так же неясно, что делать с файлами БД. Если я верно понял, все изменения по файлам можно производить только в консольных редакторах, и они умрут при остановке контейнеров.
Andrey
12.12.2018
15:30:12
Миолаэ
12.12.2018
15:31:24
Монтируй папки с хоста.
Проблема с разрешениями. Ci раннер монтирует папки, проводит миграции в БД, выполняет тесты, затем все чистит, и не может подчистить за собой файлы БД, т.к. они созданы под другим юзером.
Andrey
12.12.2018
15:40:26
Миолаэ
12.12.2018
15:42:03
А как быть с препрод и прод деплоями? Там данные должны оставаться вне зависимости от того, запущен ли контейнер.
Или 2 разных конфига делать?
В одном делать volume, вдругом нет
gitlab-runner сам пытается удалить все файлы, что не под гитом... И завершает работу с ошибкой, если не получается.
Andrey
12.12.2018
15:44:35
Миолаэ
12.12.2018
15:46:18
В общем, для ci отключать создание тома. Океюшки, будет другой docker-compose.
А как быть с кейсом с разработкой и композером?
docker-compose exec app composer update в папке vendor создает новые файлы от рута.
Я могу запустить эту команду от своего пользователя, но тогда нет смысла прокидывать в контейнер данные из ~/.composer: они все равно доступны будут только для рута.
А без этого composer update может выполняться несколько минут, что тоже не комильфо.
Rustam
12.12.2018
16:10:06
1. код всего проекта монтируем в контейнер с хоста, где файлы принадлежат вашему юзеру
2. композер при разработке гоняем на хосте, в репу кладём composer.lock и при автоматической сборке делаем не composer update, а composer install
Казимир
12.12.2018
16:52:31
Всем привет! Я тут дико тупанул и пушнул на гитлаб вот такой gitlab-ci
build:
script:
- docker build -t bot .
- docker run bot
В итоге когда я понял что bot у меня бесконечно работает попытался отменить pipeline. Подумал что все ок, но не нифига. Приложение все еще работает и шлет мне нотификации на почту, хотя pipeline отменен. Что делать???
Google
ildar
12.12.2018
16:52:54
тебе же в профильном чатике ответили
Казимир
12.12.2018
16:54:02
не то не другое у меня не получилось
Эх. Зайти по ssh на воркер и остановить контейнер
И не делать run
а я не могу пушнуть скрипт типа такого?
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
Ну можно наверно. Но это же один раз тебе надо
А, ты про лимит час?
Konstantin
12.12.2018
17:01:02
странно, у раннера таймаут же на подобное. В любом случае не тот канал
✖️
12.12.2018
18:19:40
можно ли в докер сварм обновить сразу несколько сервисов?
вот знаю как один заапдейтить docker service update --force --image ${image} ${service}
но у меня сразу несколько сервисов от одного образа зависят и было б не плохо их вместе обновить
Konstantin
12.12.2018
18:21:24
Руками вообще ничего не стоит делать
✖️
12.12.2018
18:22:44
всмысле? как через компоуз обновлять? я знаю только как все сразу передеплоить, но нужно же конкретные сервисы для конкреного нового образа
Rustam
12.12.2018
18:40:38
На самом деле докерд не умеет атомарно обновлять несколько сервисов, под капотом docker stack deploy - последовательный вызов docker service * и других простых операций. Поэтому не парьтесь )
✖️
12.12.2018
18:44:58
интересно что будет если параллельно запустить несколько апейтов
будет ли докер машина складывать апдейты в очередь и вызывать по-одному
или одновременно и будет разворачивать ?
но вообще да, наверно не стоит запариваться) спасибо
на стаковерфло кстати ответили что "стак деплой" запускает сервисы параллельно
и апдейтить нужно в детач режиме
docker service update -d service1
docker service update -d service2
Konstantin
12.12.2018
19:41:36
✖️
12.12.2018
19:42:19
просто каждый раз когда я так делал то перезагружалось все
Google
✖️
12.12.2018
19:42:43
нужно ли что-то добавлять в компоуз или какие-то еще аргументы прописывать в деплой?
Konstantin
12.12.2018
19:42:45
перегружаются только изменения
✖️
12.12.2018
19:43:58
но я вижу в service ls что неизмененные тоже перегрузились (0/1 у них стоит в колонке с сколько запущено)
Konstantin
12.12.2018
19:45:41
Evgen
12.12.2018
20:05:29
Всем привет! Такой вопрос - как сделать из контейнера черный ящик чтобы туда не смогли зайти через exec ti или не примаунтили чего лишнего
Grishq
12.12.2018
20:11:03
кароче прав запуска комнды docker
Evgen
12.12.2018
20:11:58
Это прекол да
✖️
12.12.2018
20:12:04
или поудалять все команды)
никто ничего не запустит если нечего запускать