Anonymous
Привет. У меня есть доккер файл, в котором я хочу после старта контейнера подлить бэкап в mysql FROM cswl/xampp RUN /opt/lamp/bin/MySQL start && \ musql -uroot < init_db.sql
Anonymous
Ругается на mysql. Может я команду не так пишу?
Anonymous
ииии?
Konstantin
И точка
Konstantin
Не нужно это в образ засовывать, делай на этапе запуска
Anonymous
то есть разварачивания нельзя запихнуть туда?
Anonymous
на этапе запуска чего?
Anonymous
спасибо
Anonymous
как разварот базы запустить
Konstantin
😃
Anonymous
mysql --turnaround
Anonymous
можно ли в докер компоус развернуть базу?
spirit
🏁Александр
BAAAAAAAA
подскажите, пожалуйста. как отладить эту ошибку? docker-compose build не собирается ERROR: Service 'goip-sms' failed to build: The command '/bin/sh -c /goip_install/goip_install.sh' returned a non-zero code: 1
Konstantin
но это ошибка не докера
Andrey
подскажите, пожалуйста. как отладить эту ошибку? docker-compose build не собирается ERROR: Service 'goip-sms' failed to build: The command '/bin/sh -c /goip_install/goip_install.sh' returned a non-zero code: 1
смотришь, какой layer обрался перед этим, делаешь docker run -ti --entrypoint bash <layer>, и внутри контейнера уже запускаешь sh -xv /goip_install/goip_install.sh
little big
всем привет. Ребята, подскажите пожалуйста. У меня есть mongoDb которая крутится в swarm. Доступа с внешней сети к ней нету, только из внутренней сети сварма. Как мне сделать так, чтобы секьюрно к ней подключиться с локальной машины?
Andrey
ты забыл написать, что у локальной машины нет доступа в интернет и тебе ещё надо открыть с неё google.com
little big
точно. Так и есть
Konstantin
локальной для тебя или для сворма?)
Andrey
если у локальной машины нет доступа в интернет, но нужен гугл, то решением будет подключить интернет. Если приложение доступно из внутренней сети, надо огранизовать в неё доступ. Логично?
Andrey
я ему советую запустить с sh -xv, он же спрашивает, как отдебажить
little big
локальной для тебя или для сворма?)
локальной для себя. Для сворма удаленной вестимо
Andrey
а, то есть вы подозраваете, что есть какой-то волшебный механизм у swarm? Нет, нету. У k8s есть проброс портов из коробки через kubectl port-forward. Со swarm надо либо идти по ssh, либо выставлять сервис наружу, либо vpn организовывать. Всё как обычно, специфики swarm не приносит.
spirit
docker заставляет нас разбираться до конца во всем. раньше было достаточно следовать инструкции, а теперь надо точно знать, что кому от кого и почему ;)
Andrey
я это всё в "выставить сервис наружу" запихал :)
little big
в том то и дело, что я не хочу "выставлять наружу" монго
Сергей
подскажите как правильно сделать вот так для переменных? APP_URL=http://localhost FACEBOOK_REDIRECT_URL=${APP_URL}/login/facebook/callback/ Сейчас это записывается именно так, а не подставляется как переменная
Igor
Привет. Вопрос по тому как готовить локальную разработку. Допустим есть php приложение, для него билдим образ, ставим все необходимые модули, копируем в него исходный код, ставим зависимости композером и т.д. Получаем образ готовый в прод. Но его хочется разрабатывать. По идее я беру этот же образ, в docker-compose.yml внаглую делаю volumes который перезаписывает тот код, что есть в образе, моим кодом из рабочего каталога. Проблема в том, что в этот момент стали неактуальные например мои composer.json зависимости. Можно конечно docker-compose exec ... composer install руками, но хочется лучше. Мне видется что было бы хорошо, каждый раз когда я спулился, пепезапускать docker-compose, и он бы на всякий случай делал composer install или какую-нибудь другую подготовительную работу, миграции накатить там. Но уже после того как в нем с помощью volumes подменили src. Единственный вариант так сделать, как я понимаю, это переопределять дефолтную cmd: Делаем свой entrypoint, в нем делаем вспомогательные операции, а в конце не забываем дернуть entrypoint который был в образе по умолчанию, чтобы например запустить apache, как в базовом образе.
Сергей
Привет. Вопрос по тому как готовить локальную разработку. Допустим есть php приложение, для него билдим образ, ставим все необходимые модули, копируем в него исходный код, ставим зависимости композером и т.д. Получаем образ готовый в прод. Но его хочется разрабатывать. По идее я беру этот же образ, в docker-compose.yml внаглую делаю volumes который перезаписывает тот код, что есть в образе, моим кодом из рабочего каталога. Проблема в том, что в этот момент стали неактуальные например мои composer.json зависимости. Можно конечно docker-compose exec ... composer install руками, но хочется лучше. Мне видется что было бы хорошо, каждый раз когда я спулился, пепезапускать docker-compose, и он бы на всякий случай делал composer install или какую-нибудь другую подготовительную работу, миграции накатить там. Но уже после того как в нем с помощью volumes подменили src. Единственный вариант так сделать, как я понимаю, это переопределять дефолтную cmd: Делаем свой entrypoint, в нем делаем вспомогательные операции, а в конце не забываем дернуть entrypoint который был в образе по умолчанию, чтобы например запустить apache, как в базовом образе.
Не надо volumes приложение должно быть изолированым
Konstantin
Привет. Вопрос по тому как готовить локальную разработку. Допустим есть php приложение, для него билдим образ, ставим все необходимые модули, копируем в него исходный код, ставим зависимости композером и т.д. Получаем образ готовый в прод. Но его хочется разрабатывать. По идее я беру этот же образ, в docker-compose.yml внаглую делаю volumes который перезаписывает тот код, что есть в образе, моим кодом из рабочего каталога. Проблема в том, что в этот момент стали неактуальные например мои composer.json зависимости. Можно конечно docker-compose exec ... composer install руками, но хочется лучше. Мне видется что было бы хорошо, каждый раз когда я спулился, пепезапускать docker-compose, и он бы на всякий случай делал composer install или какую-нибудь другую подготовительную работу, миграции накатить там. Но уже после того как в нем с помощью volumes подменили src. Единственный вариант так сделать, как я понимаю, это переопределять дефолтную cmd: Делаем свой entrypoint, в нем делаем вспомогательные операции, а в конце не забываем дернуть entrypoint который был в образе по умолчанию, чтобы например запустить apache, как в базовом образе.
>в этот момент стали неактуальные например мои composer.json зависимости с чего это?
Andrey
Привет. Вопрос по тому как готовить локальную разработку. Допустим есть php приложение, для него билдим образ, ставим все необходимые модули, копируем в него исходный код, ставим зависимости композером и т.д. Получаем образ готовый в прод. Но его хочется разрабатывать. По идее я беру этот же образ, в docker-compose.yml внаглую делаю volumes который перезаписывает тот код, что есть в образе, моим кодом из рабочего каталога. Проблема в том, что в этот момент стали неактуальные например мои composer.json зависимости. Можно конечно docker-compose exec ... composer install руками, но хочется лучше. Мне видется что было бы хорошо, каждый раз когда я спулился, пепезапускать docker-compose, и он бы на всякий случай делал composer install или какую-нибудь другую подготовительную работу, миграции накатить там. Но уже после того как в нем с помощью volumes подменили src. Единственный вариант так сделать, как я понимаю, это переопределять дефолтную cmd: Делаем свой entrypoint, в нем делаем вспомогательные операции, а в конце не забываем дернуть entrypoint который был в образе по умолчанию, чтобы например запустить apache, как в базовом образе.
что мешает делать билд вместо подсовывания кода через volume? Раз уж ты всё равно будешь запускать composer install
spirit
Привет. Вопрос по тому как готовить локальную разработку. Допустим есть php приложение, для него билдим образ, ставим все необходимые модули, копируем в него исходный код, ставим зависимости композером и т.д. Получаем образ готовый в прод. Но его хочется разрабатывать. По идее я беру этот же образ, в docker-compose.yml внаглую делаю volumes который перезаписывает тот код, что есть в образе, моим кодом из рабочего каталога. Проблема в том, что в этот момент стали неактуальные например мои composer.json зависимости. Можно конечно docker-compose exec ... composer install руками, но хочется лучше. Мне видется что было бы хорошо, каждый раз когда я спулился, пепезапускать docker-compose, и он бы на всякий случай делал composer install или какую-нибудь другую подготовительную работу, миграции накатить там. Но уже после того как в нем с помощью volumes подменили src. Единственный вариант так сделать, как я понимаю, это переопределять дефолтную cmd: Делаем свой entrypoint, в нем делаем вспомогательные операции, а в конце не забываем дернуть entrypoint который был в образе по умолчанию, чтобы например запустить apache, как в базовом образе.
у самого сейчас похожая задача. теряюсь в количестве подходов и вариантов решения этой задачи... дохожу до какой то точки и начинаю делать новый вариант... ¯\_(ツ)_/¯
Konstantin
что-то вы страдаете ерундой
Konstantin
docker run —rm -ti -v $(pwd):/workdir php сиди работай
Сергей
собирайте всё в одном контейнере(веб+приложение) и запускайте себе на здоровье где угодно, зачем код сосать из папки то?
Igor
Сергей
не заметил
spirit
да потому что так и есть... это получается как код писать. каждый dockerfile уникальный получается. если я хочу поставить сам с нуля только то что мне нужно и всю связку php, nginx, composer, xdebug, базы то получается множество вариантов как это можно сделать. разве не так?
Konstantin
да, человеки читают через строку
spirit
думаю у igor dodnar правильный подход в том плане, что он сначала написал для прода, а потом стал думать уже про локальную.
spirit
Вопрос про локальную разработку
можно же mount сделать в VOLUME не через volumes из compose . и добавить composer.json в dockerignore
Stas
кто может помочь с докером в скайпе?Заплачу) apache2 mysql laravel
spirit
но это не точно ;) сам разбираюсь
spirit
и вообще хочется магии. когда я пишу в compose volumes я ожидаю что линки будут созданы с учетом dockerignore который лежит в директории конкретного собираемого образа...
Artem
Всем привет. Не кто не подскажет как можно по простому две bridg подсети на разных host машинах связать между собой?
yellow
я новичок в докере вопрос скорее всего тупой будет как я понял, скачиваешь образ из docker hub, создаешь из него контейнер, в этом контейнере устанавливаешь зависимости которые тебе нужны и в нем разработываешь приложение таким образом все происходит изолированно => когда зальешь его в докер хаб(по идее образ как-то нужно создать из контейнера в котором делал приложение) кто-нибудь может его скачать у запустить у себя я правильно все понял? когда создаешь контейнер как в него запихнуть какие-то файлы, по идее директория какая-то должна быть чтобы поудобней было
Artem
Маршрутами
Не вариант Вариантом может быть использование консула для поддержки одной подсети между разными хостмашинами
Евгений
Добрый вечер! Подскажите, пожалуйста, была ли у кого проблема с редисом (версия 4.0) в docker-compose? Ошибка Redis server went away, хотя redis работает, а из другого контейнера все пингуется. Подключаюсь из контейнера с пхп, там SncRedisBundle (2.1) + расширение phpredis (3.1.6). Буду рад любой помощи, спасибо)
V 🏴‍☠️
Если ты про connect, то это не оверлей
Artem
Консул то тут причём?
https://gist.github.com/metallica127/ed1f1a0e0597e537e20f28d78c1a0d45
V 🏴‍☠️
https://gist.github.com/metallica127/ed1f1a0e0597e537e20f28d78c1a0d45
Тут консул вообще не про оверлей, а просто как KV Storage
V 🏴‍☠️
Это можно и без консула сделать
Artem
типо как?
V 🏴‍☠️
Типо любой оверлей
V 🏴‍☠️
Что получить в итоге хочется? Может тут вообще оверлей не нужен?
Artem
Ну в итоге что бы на разных машинах можно было обращаться к контейнерам по network alias
yellow
Относительно. Но чуток не так. Лучше таки все действия описывать в докерфайле
например я делаю рест апи на экспрессе(nodejs) сделал проект и после создал контейнер? или сначала создал контейнер в какой-то директории и после сделал там весь проект?
V 🏴‍☠️
Ну в итоге что бы на разных машинах можно было обращаться к контейнерам по network alias
К контейнерам, а не сервисам? Может тебе на кубер посмотреть?
Artem
Я туда и смотрю. Но нужен простой промежуточный етап просто.
Konstantin
например я делаю рест апи на экспрессе(nodejs) сделал проект и после создал контейнер? или сначала создал контейнер в какой-то директории и после сделал там весь проект?
Тебе нужно описывать всё в dockerfile для последующей сборки образа. В самом контейнере не стоит ничего делать подобного. Передавать достаточно докерфайл либо собраный образ через registry
Brommie
привет. Сбилдил го приложеньку, пихнул в scratch, а оно мне standard_init_linux.go:190: exec user process caused "no such file or directory"
Alexey
Могу перевести, что написано
Alexey
Могу советом
Brommie
Советом)
Alexey
Запусти в каком-нибудь дебиан-контейнере, там ошибка будет более информативная