AstraSerg
так, а ls -la /var/run/docker.sock
Eugene
последнее что делал - это добавлял tcp - там выше видно
Eugene
так, а ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec 11 14:43 /var/run/docker.sock
Eugene
причем - ошибка не на всем выскакивает
AstraSerg
а вот так: file /var/run/docker.sock
Eugene
грит что это сокет )
AstraSerg
а если остановить демон /var/run/docker.sock исчезнет?
Eugene
да
AstraSerg
вот жеж сцуко
Eugene
уже пробовал такой вариант
Eugene
причем ошибка не на каждом запуске докера возникает
AstraSerg
в системных лога нет ничего интересного при этом?
Eugene
докер-композ дергает 2 ямла, на одном все прекрасно, на другом билдить надо и он ругается
Yuriy
Версия не 18.09 часом?
AstraSerg
можно ещё под starce запустить strace docker --version но это для сильных духом :)
AstraSerg
Версия не 18.09 часом?
а что? есть проблемы в ней?
Yuriy
Был проблем с запуском докере в lxc из-за того что containerd пытался вгрузить ядерный модуль overlay которого не было
Eugene
Блин, в логах ничего нет (( Есть пайплайн в одной из таксов композом в две команды 2 запуска 2х разных сервисов из одного ямла. Первая команда просто стартует сервис, вторая запускает второй сервис через build.. и вот бблин первай команда проходит а вторая: ..connect to Docker daemon at http+docker://localhost... .как так-то?
Eugene
Парни, я разобрался, спасибо за участие!. CI_COMMIT_REF_NAME заменил на CI_COMMIT_REF_SLUG (хотя до этого год нормально работало). Docker вообще не причем оказался.
AstraSerg
Вон оно как! А Вы же говорили, что docker --version тоже ошибку даёт?
Eugene
Вон оно как! А Вы же говорили, что docker --version тоже ошибку даёт?
Прости, я неверно распарсил твой вопрос. Я подумал, что имеется ввиду «не менялась ли версия» - тупанул
AstraSerg
А, ясн. Ничего страшного. Просто если бы определили, что версия норм отдается, сразу бы сбросили со счетов проблему самого докер-демона. Так просто дольше получилось.
Eugene
Ребят, а есть вообще какие-нибудь best practices для докер ноды по разметкам диска? Да и вообще по настройкам? Или кто как?
Артём
я обычно выделаю для докера отдельный диск, поверх блочного устройства (а не логического диска) натягиваю LVM и монтирую его как /var/lib/docker
Hopf
Привет. У меня есть контейнер, который долго стартует. Подскажите, как мне проверить, что он точно запустился? Использовать HEALTHCHECK?
Hopf
Спасибо
AstraSerg
Все бы так/такие вопросы задавали....
AstraSerg
Hopf
Все бы так/такие вопросы задавали....
Я могу перефразировать. У меня есть кастомный постгрес, он стартует медленно, сервис который от него зависит - отваливается по таймауту. CI ломается, тесты не проходят. Что делать????
Hopf
попробуй wait-for-it.sh
оу, круто, спасибо
Roman
очень жаль на самом деле, что нужны эти костыли с wait-for-it
AstraSerg
очень жаль на самом деле, что нужны эти костыли с wait-for-it
вообще, у docker run есть параметр таймаут рестарта --restart=on-failure:10 может его сможете прикрутить
AstraSerg
https://docs.docker.com/engine/reference/run/#restart-policies---restart
Roman
это чуток не то
Roman
я уже не помню - давно не смотрел, но там писали, что такое делать не будут вне docker swarm или как оно там зовется сейчас
AstraSerg
это чуток не то
я понимаю, что не совсем то, но может получится прикрутить. Ведь контейнер падает недождавшись постгреса. Может это падение и будет триггером on-failure для restart
Артём
по идее если прописать depend_on у контейнера с приложухой
Артём
а для постгреса сделать хелсчек, то контейнер с приложением стартанет тогда, когда контейнер с БД будет healthy
Артём
но это не точно
Hopf
попробуй wait-for-it.sh
Wait for it рапортует, что все ок, но в постгрю ещё какое-то время подключиться нельзя(
Rustam
но это не точно
в swarm работать не будет
Rustam
Wait for it рапортует, что все ок, но в постгрю ещё какое-то время подключиться нельзя(
таймаут или в зависимом от постгри контейнере держать утилитку pg_isready и пользоваться ею
A
Всем привет, ребят. Есть сервис в compose файле: rabbitmq: image: rabbitmq:management-alpine container_name: rabbit-mq expose: - "5672" ports: - 15672:15672 logging: options: max-size: "10m" max-file: "10" В другом сервисе в конфигурационном файле написано: rabbitmq.host: rabbitmq Но во время запуска получаю: Attempting to connect to: 40c0799adcfa:5672
A
Контейнеры подключены к одной сети? Rabbit успешно стартует?
Да, другой сервис находится в том же compose файле и подключен к той же самой сети. Да, rabbit успешно стартует.
A
так у вас порты разные в expose и в ports
Вот docker-compose.yml: version: "3.5" services: rabbitmq: image: rabbitmq:management-alpine container_name: rabbit-mq expose: - "5672" ports: - 15672:15672 logging: options: max-size: "10m" max-file: "10" current-client: image: current-client-test-image container_name: current-client-test expose: - "8072" depends_on: - rabbitmq Второй порт для management и замапан (странно звучит, но не нашел альтернативу) на хост. Вот часть application.yml: spring: rabbitmq: host: rabbitmq username: guest password: guest port: 5672 virtual-host: /
AstraSerg
А пройдёт соединение вот так: telnet localhost 5672
AstraSerg
С хоста или с контейнера?
на какой ответ вы рассчитваете? :))
A
на какой ответ вы рассчитваете? :))
С хоста не думаю, потому что expose только в виртуальную сеть.
A
Хорошо, сейчас проверю.
AstraSerg
если с хоста не нужно так и не проверяйте, проверяйте из виртуальной сети. Имхо, проще выполнить команду, чем спрашивать :)
Kostya
ребят подскажите плиз нужно сделать несколько контейнеров в docker-compose, один с php (уже есть) второй с supervisor+php (для запуска кронов), как это правильно сделать?
Kostya
уже пробовал для этих 2 контейнеров 2 разных Dockerfile указывать, но почему-то если делаю билд в обоих в итоге получается супервизор, а он нужен только в одном из контейнеров, пути к dockerfile проверял
A
А пройдёт соединение вот так: telnet localhost 5672
Изнутри контейнера: / # telnet localhost 5672 telnet: can't connect to remote host (127.0.0.1): Connection refused / # telnet rabbitmq 5672 telnet: bad address 'rabbitmq' / # telnet 172.26.0.2 5672 Connection closed by foreign host
Kostya
compose покажи
version: '3' services: php7: build: context: ./php7 dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_php7 image: main_php7:v1 restart: always container_name: php7 env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ depends_on: - mysql_db - postgres_db environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} links: - mysql_db:mysql_db - postgres_db:postgres_db networks: - network1 php5: build: context: ./php5 dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_php5 image: main_php5:v1 restart: always container_name: php5 env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ depends_on: - mysql_db - postgres_db environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} links: - mysql_db:mysql_db - postgres_db:postgres_db networks: - network1 ############ WORKERS START php5_worker: build: context: ./php5_worker dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_worker_php5 image: worker_php5:v1 restart: always container_name: php5_worker env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ - ${DOCKER_DEV_PATH}/supervisor:/etc/supervisor/ ports: - 9101:9001 # Access GUI with http://localhost:9001/ environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} networks: - network1 php7_worker: build: context: ./php7_worker dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_worker_php7 image: worker_php7:v1 restart: always container_name: php7_worker env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ - ${DOCKER_DEV_PATH}/supervisor:/etc/supervisor/ ports: - 9102:9001 # Access GUI with http://localhost:9001/ environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} networks: - network1 ########### WORKERS END networks: network1: volumes: pgdata1: mysqldata:
Jürgen
version: '3' services: php7: build: context: ./php7 dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_php7 image: main_php7:v1 restart: always container_name: php7 env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ depends_on: - mysql_db - postgres_db environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} links: - mysql_db:mysql_db - postgres_db:postgres_db networks: - network1 php5: build: context: ./php5 dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_php5 image: main_php5:v1 restart: always container_name: php5 env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ depends_on: - mysql_db - postgres_db environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} links: - mysql_db:mysql_db - postgres_db:postgres_db networks: - network1 ############ WORKERS START php5_worker: build: context: ./php5_worker dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_worker_php5 image: worker_php5:v1 restart: always container_name: php5_worker env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ - ${DOCKER_DEV_PATH}/supervisor:/etc/supervisor/ ports: - 9101:9001 # Access GUI with http://localhost:9001/ environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} networks: - network1 php7_worker: build: context: ./php7_worker dockerfile: ${DOCKER_DEV_PATH}/Dockerfile_worker_php7 image: worker_php7:v1 restart: always container_name: php7_worker env_file: /home/docker/docker-dev/.env volumes: - ${LOCAL_APP_PATH}:/home/www/code/ - ${DOCKER_DEV_PATH}/supervisor:/etc/supervisor/ ports: - 9102:9001 # Access GUI with http://localhost:9001/ environment: - APP_ENV=${APP_ENV} - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} networks: - network1 ########### WORKERS END networks: network1: volumes: pgdata1: mysqldata:
image: worker_php5:v1 так и должно быть? руками попробуй контейнеры запустить и посмотреть что внутри образа
Kostya
это типа моё название чтоб имедж был разный для php который для веба и пхп который для воркера
Kostya
контейнеры запускал, все запускаются кроме воркеров с supervisor
Kostya
так оно и есть разное для воркеров и для веба
Jürgen
так оно и есть разное для воркеров и для веба
эта переменная зачем ${DOCKER_DEV_PATH}?
Kostya
это папка со всеми файлами типа docker-compose.yml Dockerfile итд, думал что нужен абсолютный путь может там, поэтому через переменную его указал
Jürgen
а где ты ее определяешь?
Kostya
в .env