Eugene
11.12.2018
12:57:18
докер-композ дергает 2 ямла, на одном все прекрасно, на другом билдить надо и он ругается
Yuriy
11.12.2018
12:58:39
Версия не 18.09 часом?
AstraSerg
11.12.2018
12:59:04
можно ещё под starce запустить
strace docker --version
но это для сильных духом :)
Google
AstraSerg
11.12.2018
12:59:30
Eugene
11.12.2018
12:59:40
Yuriy
11.12.2018
12:59:57
Был проблем с запуском докере в lxc из-за того что containerd пытался вгрузить ядерный модуль overlay которого не было
Eugene
11.12.2018
15:01:04
Блин, в логах ничего нет ((
Есть пайплайн в одной из таксов композом в две команды 2 запуска 2х разных сервисов из одного ямла. Первая команда просто стартует сервис, вторая запускает второй сервис через build.. и вот бблин первай команда проходит а вторая: ..connect to Docker daemon at http+docker://localhost... .как так-то?
Парни, я разобрался, спасибо за участие!.
CI_COMMIT_REF_NAME заменил на CI_COMMIT_REF_SLUG (хотя до этого год нормально работало). Docker вообще не причем оказался.
AstraSerg
12.12.2018
05:50:49
Вон оно как! А Вы же говорили, что docker --version тоже ошибку даёт?
Eugene
12.12.2018
05:59:30
AstraSerg
12.12.2018
06:02:32
А, ясн. Ничего страшного. Просто если бы определили, что версия норм отдается, сразу бы сбросили со счетов проблему самого докер-демона. Так просто дольше получилось.
Eugene
12.12.2018
10:51:19
Ребят, а есть вообще какие-нибудь best practices для докер ноды по разметкам диска? Да и вообще по настройкам? Или кто как?
Phil
12.12.2018
11:00:12
Артём
12.12.2018
11:05:37
я обычно выделаю для докера отдельный диск, поверх блочного устройства (а не логического диска) натягиваю LVM и монтирую его как /var/lib/docker
Eugene
12.12.2018
11:17:03
Google
User ?
13.12.2018
09:09:37
Привет. У меня есть контейнер, который долго стартует. Подскажите, как мне проверить, что он точно запустился?
Использовать HEALTHCHECK?
Артём
13.12.2018
09:11:34
User ?
13.12.2018
09:12:21
Спасибо
AstraSerg
13.12.2018
09:21:11
Все бы так/такие вопросы задавали....
User ?
13.12.2018
09:23:39
Все бы так/такие вопросы задавали....
Я могу перефразировать. У меня есть кастомный постгрес, он стартует медленно, сервис который от него зависит - отваливается по таймауту. CI ломается, тесты не проходят.
Что делать????
Roman
13.12.2018
09:24:01
User ?
13.12.2018
09:25:10
AstraSerg
13.12.2018
09:51:03
Roman
13.12.2018
09:58:17
очень жаль на самом деле, что нужны эти костыли с wait-for-it
AstraSerg
13.12.2018
10:02:08
https://docs.docker.com/engine/reference/run/#restart-policies---restart
Roman
13.12.2018
10:05:10
это чуток не то
я уже не помню - давно не смотрел, но там писали, что такое делать не будут вне docker swarm или как оно там зовется сейчас
AstraSerg
13.12.2018
10:18:44
это чуток не то
я понимаю, что не совсем то, но может получится прикрутить. Ведь контейнер падает недождавшись постгреса. Может это падение и будет триггером on-failure для restart
Артём
13.12.2018
10:25:37
по идее если прописать depend_on у контейнера с приложухой
а для постгреса сделать хелсчек, то контейнер с приложением стартанет тогда, когда контейнер с БД будет healthy
но это не точно
User ?
13.12.2018
10:26:10
Roman
13.12.2018
10:26:44
Rustam
13.12.2018
12:11:33
Google
Rustam
13.12.2018
12:12:16
John
13.12.2018
12:16:02
Всем привет, ребят.
Есть сервис в 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
Максим
13.12.2018
12:25:18
John
13.12.2018
12:35:50
AstraSerg
13.12.2018
12:48:58
John
13.12.2018
13:01:51
так у вас порты разные в 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
13.12.2018
13:05:20
А пройдёт соединение вот так:
telnet localhost 5672
John
13.12.2018
13:06:21
AstraSerg
13.12.2018
13:06:52
John
13.12.2018
13:07:47
Хорошо, сейчас проверю.
AstraSerg
13.12.2018
13:08:45
если с хоста не нужно так и не проверяйте, проверяйте из виртуальной сети. Имхо, проще выполнить команду, чем спрашивать :)
John
13.12.2018
13:09:11
Kostya
13.12.2018
13:09:34
ребят подскажите плиз нужно сделать несколько контейнеров в docker-compose, один с php (уже есть) второй с supervisor+php (для запуска кронов), как это правильно сделать?
Admin
Kostya
13.12.2018
13:11:36
уже пробовал для этих 2 контейнеров 2 разных Dockerfile указывать, но почему-то если делаю билд в обоих в итоге получается супервизор, а он нужен только в одном из контейнеров, пути к dockerfile проверял
Iurii
13.12.2018
13:19:51
John
13.12.2018
13:23:56
А пройдёт соединение вот так:
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
13.12.2018
13:25:50
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
13.12.2018
13:26:53
Google
Iurii
13.12.2018
13:27:47
Kostya
13.12.2018
13:28:41
это типа моё название чтоб имедж был разный для php который для веба и пхп который для воркера
контейнеры запускал, все запускаются кроме воркеров с supervisor
Iurii
13.12.2018
13:29:44
Kostya
13.12.2018
13:30:41
так оно и есть разное для воркеров и для веба
Iurii
13.12.2018
13:33:15
Kostya
13.12.2018
13:34:05
это папка со всеми файлами типа docker-compose.yml Dockerfile итд, думал что нужен абсолютный путь может там, поэтому через переменную его указал
Iurii
13.12.2018
13:34:46
а где ты ее определяешь?
Kostya
13.12.2018
13:35:21
в .env
John
13.12.2018
13:36:03
Iurii
13.12.2018
13:36:59
в .env
я не думая что при билде он ее подставит, честно не помню
Kostya
13.12.2018
13:37:26
хм, тоесть надо указать полный путь?
Iurii
13.12.2018
13:38:45
Kostya
13.12.2018
13:39:23
и мне надо получается ложить dockerfile в папку /worker?
Iurii
13.12.2018
13:40:18
Либо еще проверь докер файлы мало ли что вкралось
Dennis
13.12.2018
13:44:36
Коллеги, кто-нибудь сдавал экзамен DCA?
Kostya
13.12.2018
14:00:39
Либо еще проверь докер файлы мало ли что вкралось
может быть такое что docker-compose не видит альтернативный Dockerfile? потому что там указана установка supervisor, но при запуске пишет
/usr/local/bin/docker-php-entrypoint: 9: exec: /usr/bin/supervisord: not found
потому что обычный пых работает, а воркеровский нет(