neb0t
@xalertax ну вот ты не прав по поводу ссылки. Systemd нету вообще в докере. Вернее ты можешь его вернуть в контейнер то тогда смысл использования докера? Ссылка была для ознакомления с докером: по сколько у канала нет своего внутреннего ресурса с мануалами или статьями, а всем остальным впадло хранить статьи о докере на своих ресурсах.
Ильдар
а чем ты отличаешься-то от ленивых, ежели кидаешь на адекватный вопрос, ссылку какую-то)
Ты в первом же сообщении усомнился в нормальности своего желания. И угадал, тащемта)
neb0t
@xalertax Да все ок. :) Сам, обычто, тоже в гугл посылаю, если вопрос сам гуглится. А за использование systemd - была когда-то у меня идея засунуть его в контейнер для тестирования ansible плейбуков, но в итоге подымал vagrant-ом ВМ-ки и тестил роли на норм машинах, так как засунуть системд в контенер было не кошерно...
neb0t
ну в СМД проще всего засунуть команду с системд (команду для запуска джарника с параметрами). + будет лучше положить джарник на волюм - не прийдется перебылдживать контенер - достаточно будет докер ср вызвать (положить файл на волайм) и перезапустить контейнер. Но если версия с новым контенером идет - тогда копировать при билде и пушить в регистри каждый раз с последним джарником.
Ohh
Спасибо за ответы
Zloi
Господа всем привет. Помогите разобраться новичку. Есть такой docker-compose.yml https://pastebin.com/vufa47GP Контейнеры вроде запускаются но не получается подключиться через phpmyadmin пишет mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'172.24.0.4' (using password: YES) и из проекта тоже не получается поставить opencart пишет No such file or directory Подскажите куда копать?
Konstantin
в общем удали базу и заново создай
Zloi
теперь пишет mysqli_real_connect(): (HY000/2002): Connection refused
Zloi
и пасворд рута прописан же в env
Konstantin
и пасворд рута прописан же в env
скорее всего ты его менял в env после создание базы, а оно так не работает
Konstantin
Zloi
из phpmyadmin &
Zloi
?
Zloi
php контейнер билдится вот Dockerfile FROM php:7.0-fpm RUN apt-get update && apt-get install -y \ curl \ wget \ git \ libfreetype6-dev \ libjpeg62-turbo-dev \ libxslt-dev \ libicu-dev \ libmcrypt-dev \ libpng-dev \ libxml2-dev \ && docker-php-ext-install -j$(nproc) iconv mcrypt mbstring mysqli pdo_mysql zip \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd RUN docker-php-ext-configure intl RUN docker-php-ext-install intl RUN docker-php-ext-install xsl RUN docker-php-ext-install soap RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini WORKDIR /var/www CMD ["php-fpm"]
Zloi
phpmyadmin
Konstantin
phpmyadmin
Давай так - я пытаюсь подключиться от туда сюда с таким-то dsn и паролем, а мне пишет такое вот
Konstantin
Вытягивать надо по слову, такое ОйТи 🤢
Zloi
так... прошу сразу прощения.. только начал изчать докер ... поэтому лучше сразу сказать что показать.... я покажу и попытаюсь аргументировать свои записи Что за ОйТи ?
Andrey
так... прошу сразу прощения.. только начал изчать докер ... поэтому лучше сразу сказать что показать.... я покажу и попытаюсь аргументировать свои записи Что за ОйТи ?
Смари, у тебя ошибка "Connection refused", что само по себе подразумевает что кто-то куда-то коннектился, а его там не ждали. Учитывая все сказанное тобой выше, ты пытаешься долбануться в mysql базу с использованием phpmyadmin. Таким образом, можно предположить что либо mysql база не поднята, либо конфигурация коннекшна к базе в phpmyadmin не верная. Вот как раз эту конфигурацию и попросили тебя показать. Может быть еще проблема с сетью, но об этом позже. Экстрасенс свой доклад окончил.
Zloi
спасибо ....
Zloi
только я так и не понял куда обратить свой взор... пытаюсь сделать окружение для веб разработки.. все разложить по контейнерам ... контейнеры вроде запускаются.. по крайней мере docker ps показывает что все они стартанули и есть в списке...
Zloi
это ? phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin ports: - 8090:80 links: - mysql:db
Andrey
это ? phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin ports: - 8090:80 links: - mysql:db
Нет. Как вы казываете phpmyadmin к какой базе и какому серверу коннектиться?
Zloi
сервер localhost user: root pass: pass
Zloi
в браузере запускаю localhost
Zloi
порт 8090
Andrey
Отлично, так ты открываешь phpmyadmin. А внутри него какой сервер базы и порт базы пишешь?
Egor
Чуваки, а где вы образы собираете?
Egor
Gitlab CI/локально
А чем отличается?
Andrey
А чем отличается?
А - автоматизация
Dmitry
Чуваки, а где вы образы собираете?
В каком плане где? Я вот собираю на своем компе для экспериментов. И на серверах/в k8s кластере при сборке из CI
Kirill
Gitlab CI сам это все на раннере делает и это потом в Кубер улетает, локально для себя собираю всякое.
Konstantin
сервер localhost user: root pass: pass
Нету локалхлстов в докере, в композе имя сервиса = днс адрес
Arsenii
Есть у кого-то готовый тестовый проект на Docker + Gradle?
Egor
А - автоматизация
А можешь привести пример? Типо вот я внес изменения в коде, дальше что я делаю? Отправляю эти файлы на гитлаб, а он потом куда? Как вообще этот процесс устроен
Andrey
Ну собрала, а дальше что?
И положила в docker registry например
Andrey
А дальше ты деплоишь уже, если надо конечно
Egor
А в чем заключается автоматизация, почему я не могу билдить сразу при деплое?
Egor
А дальше ты деплоишь уже, если надо конечно
И может ли докер сразу после изменений в регистри релоаднуть контейнеры?
Andrey
А в чем заключается автоматизация, почему я не могу билдить сразу при деплое?
Ну это процесс. Если разрабатываешь на проде, то тебе это все не нужно.
Egor
Ну это процесс. Если разрабатываешь на проде, то тебе это все не нужно.
что именно не нужно, возня с гитлабом или билдить при деплое?
Andrey
что именно не нужно, возня с гитлабом или билдить при деплое?
если ты разрабатываешь на проде то просто собираешь новый контейнер, стопаешь старый, подымаешь новый. Делается трехстрочным баш скриптом.
Andrey
А если говорить о чем то более менее серьезном то процесс может выглядеть так: разраб коммитит в гит -> некая CI система (gitlab/teamcity/jenkins/etc) видит новый коммит -> собирает контейнер -> гоняет тесты -> пушит в docker registry -> деплоит на тестовый стенд дальше тестировщики это мануально тестируют. Дают аппрув. жмакается кнопка и это летит на стенд нагрузочного тестирования. Если тестирование проходит то деплой на прод. Вот один из сценариев. И их может быть бесчисленное множество.
Andrey
а если ты тупо забыл ; весь этот цикл каждый раз по новой запускать?
А у себя на тачке не проверял чтоль что накодил? ну программисты которые работают на проектах где есть такие системы, обычно тупо не забывают ;. как вариант прогонять тесты на забытую ";" перед коммитом
Andrey
Отвечая на вопрос. Да, если "тупо забыл ;", делаешь фикс, который это устраняет и отправляшь код снова в гит, дальше все как и в предыдущий раз
Andrey
Всякое бывает, тупо клавиша не прожалась и тд
Давай таки называть это просто словом баг. Если закрался баг, то на одном из шагов того pipeline который я описал, процесс свалится и уведомит об этом. Благодаря чему, это баг не просочится на прод
Ahmed
Не работает healthcheck, возможно неправильно его настроил. Дорогие дамы и господа подскажите что не так https://hastebin.com/olasobecut.http
Pavel
Не работает healthcheck, возможно неправильно его настроил. Дорогие дамы и господа подскажите что не так https://hastebin.com/olasobecut.http
Попробуй так: test: ["CMD-SHELL", "/etc/init.d/mysql status 2>&1 | grep (running)"] А вообще, вот скрипт с более правильный вариантом https://github.com/docker-library/healthcheck/blob/master/mysql/docker-healthcheck
Ahmed
Попробуй так: test: ["CMD-SHELL", "/etc/init.d/mysql status 2>&1 | grep (running)"] А вообще, вот скрипт с более правильный вариантом https://github.com/docker-library/healthcheck/blob/master/mysql/docker-healthcheck
Хм, а этот скрипт в каком https://github.com/docker-library/healthcheck/blob/master/mysql/docker-healthcheck из контейнеров запускать именно?
Ahmed
в контейнере с мускулом?
Pavel
Да, в мускульном. Хелсчек и предназначен для проверки жизни контейнера в котором он запускается
Pavel
Более сложные проверки не хелсчеками делаются а другими инструментами
Pavel
Ты можешь запустить контейнер без хелсчека. Зайти в него и там подать команду что я дал. Сразу после нее echo $? подаешь и оно тебе выведет 0 если мускул работает и 1 если нет
Pavel
Это как раз то что хелсчеку и надо
Pavel
Эмулировать что мускул не работает можно изменив в grep патерн с running на любой другой
Ahmed
Спасибо за советы
Ahmed
У меня чет скрипт с хелзчеком не прокидывается в контейнер с мускулом. volumes: - ./astro-backend/compose/mysql/mysql-healthcheck.sh:/docker-entrypoint-initdb.d
Ahmed
Правильно ли я делаю все?
Ahmed
У меня чет скрипт с хелзчеком не прокидывается в контейнер с мускулом. volumes: - ./astro-backend/compose/mysql/mysql-healthcheck.sh:/docker-entrypoint-initdb.d
С этой проблемой разобрался, вот только не понимаю почему он считает баш скрипт за директорию? /usr/local/bin/docker-entrypoint.sh: line 53: .: /docker-entrypoint-initdb.d/mysql-healthcheck.sh: is a directory
Andrey
С этой проблемой разобрался, вот только не понимаю почему он считает баш скрипт за директорию? /usr/local/bin/docker-entrypoint.sh: line 53: .: /docker-entrypoint-initdb.d/mysql-healthcheck.sh: is a directory
Потому что монтируешь файл в директорию. Не помню можно ли монтировать файл в файл, но директорию в директорию точно можно.
Владислав
доброе утро. не подскажете, как можно пробросить vhost'ы докера на хостовую ось?
Ильдар
в докере есть vhost? ;)
Andrey
Но откуда vhost в докере?