AstraSerg
так, а ls -la /var/run/docker.sock
Eugene
последнее что делал - это добавлял tcp - там выше видно
Eugene
причем - ошибка не на всем выскакивает
AstraSerg
а вот так:
file /var/run/docker.sock
Eugene
грит что это сокет )
AstraSerg
а если остановить демон /var/run/docker.sock исчезнет?
Eugene
да
AstraSerg
вот жеж сцуко
Eugene
уже пробовал такой вариант
Eugene
причем ошибка не на каждом запуске докера возникает
AstraSerg
в системных лога нет ничего интересного при этом?
Eugene
докер-композ дергает 2 ямла, на одном все прекрасно, на другом билдить надо и он ругается
Eugene
Yuriy
Версия не 18.09 часом?
AstraSerg
можно ещё под starce запустить
strace docker --version
но это для сильных духом :)
Eugene
Yuriy
Был проблем с запуском докере в lxc из-за того что containerd пытался вгрузить ядерный модуль overlay которого не было
Eugene
Блин, в логах ничего нет ((
Есть пайплайн в одной из таксов композом в две команды 2 запуска 2х разных сервисов из одного ямла. Первая команда просто стартует сервис, вторая запускает второй сервис через build.. и вот бблин первай команда проходит а вторая: ..connect to Docker daemon at http+docker://localhost... .как так-то?
Eugene
Eugene
Парни, я разобрался, спасибо за участие!.
CI_COMMIT_REF_NAME заменил на CI_COMMIT_REF_SLUG (хотя до этого год нормально работало). Docker вообще не причем оказался.
AstraSerg
Вон оно как! А Вы же говорили, что docker --version тоже ошибку даёт?
AstraSerg
А, ясн. Ничего страшного. Просто если бы определили, что версия норм отдается, сразу бы сбросили со счетов проблему самого докер-демона. Так просто дольше получилось.
Eugene
Ребят, а есть вообще какие-нибудь best practices для докер ноды по разметкам диска? Да и вообще по настройкам? Или кто как?
🏳️ Phil
Артём
я обычно выделаю для докера отдельный диск, поверх блочного устройства (а не логического диска) натягиваю LVM и монтирую его как /var/lib/docker
Eugene
Hopf
Привет. У меня есть контейнер, который долго стартует. Подскажите, как мне проверить, что он точно запустился?
Использовать HEALTHCHECK?
Артём
Hopf
Спасибо
AstraSerg
Все бы так/такие вопросы задавали....
AstraSerg
Hopf
Все бы так/такие вопросы задавали....
Я могу перефразировать. У меня есть кастомный постгрес, он стартует медленно, сервис который от него зависит - отваливается по таймауту. CI ломается, тесты не проходят.
Что делать????
Roman
Hopf
AstraSerg
Roman
очень жаль на самом деле, что нужны эти костыли с wait-for-it
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 рапортует, что все ок, но в постгрю ещё какое-то время подключиться нельзя(
Roman
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
Максим
AstraSerg
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
A
A
Хорошо, сейчас проверю.
AstraSerg
если с хоста не нужно так и не проверяйте, проверяйте из виртуальной сети. Имхо, проще выполнить команду, чем спрашивать :)
A
Kostya
ребят подскажите плиз нужно сделать несколько контейнеров в docker-compose, один с php (уже есть) второй с supervisor+php (для запуска кронов), как это правильно сделать?
Kostya
уже пробовал для этих 2 контейнеров 2 разных Dockerfile указывать, но почему-то если делаю билд в обоих в итоге получается супервизор, а он нужен только в одном из контейнеров, пути к dockerfile проверял
Jürgen
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:
AstraSerg
Jürgen
Kostya
это типа моё название чтоб имедж был разный для php который для веба и пхп который для воркера
Kostya
контейнеры запускал, все запускаются кроме воркеров с supervisor
Jürgen
Kostya
так оно и есть разное для воркеров и для веба
Jürgen
Kostya
это папка со всеми файлами типа docker-compose.yml Dockerfile итд, думал что нужен абсолютный путь может там, поэтому через переменную его указал
Jürgen
Jürgen
а где ты ее определяешь?
Kostya
в .env
A