docker

docker postgres /docker-entrypoint-initdb.d Тире в имени базы и/или имени пользователя. Как настроить

Для поддержки тире в имени пользователя и БД, просто берем их в двойные кавычки.

Скрипт для /docker-entrypoint-initdb.d можно выглядеть напр. так (с поддержкой создания нескольких БД):

docker postgres Не запускается с первого раза при docker-compose up --build

Скорее всего причина в том, что у вас первый раз с ошибками выполняется какая-то инициализация, которая просто не запускается второй раз (почему все и "работает" со второго раза), напр. ошибки могут быть в скрипте инициализации docker-entrypoint-initdb.d.

В нашем случае проблема была в том, что скрипт не поддерживал имена БД пользователя и бд с тире (это можно либо добавить поддержку тире на уровне скрипта, либо использовать имена без тире).

docker postgres /docker-entrypoint-initdb.d Пользователь и БД не создаются заново при rebuild

Дело в том, что /docker-entrypoint-initdb.d выполняется, только если у нас "пустые данные" - т.е. обычно при первом создании контейнера.

Как написано в документации:

scripts in /docker-entrypoint-initdb.d are only run if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup

docker run The container name ... is already in use by container Ошибка

Error response from daemon: Conflict. The container name "/my-redis" is already in use by container ..... You have to remove (or rename) that container to be able to reuse that name.

-- как ответ на команду вроде:

Invalid address ...: It does not belong to any of this network's subnets Docker ошибка

ERROR: for ... Cannot start service ...: Invalid address 172.37.1.2: It does not belong to any of this network's subnets

Ошибка возникает при попытке запустить контейнеры:

docker-compose -f ./docker/docker-compose.yml up --build  --force-recreate 

Не работает для конфигурации:

ssh_exchange_identification: Connection closed by remote host Ошибка

ssh_exchange_identification: Connection closed by remote host

Проблема наблюдается при попытке подключить в контейнер docker, с установленным в нем SSH

docker Invalid port specification

ERROR: for ..... Cannot create container for service web: invalid port specification: "583522"

ERROR: for ... Cannot create container for service web: invalid port specification: "583522"
ERROR: Encountered errors while bringing up the project.

Причина

Причина в том, что для портов ниже 60, докер воспринимает число после двоеточия как указание на систему счичления, цитата из документации:

docker Владельцы файлов в контейнере и снаружи. Решение проблемы через общую группу в основной ОС

Предположим, что в вашей основной ОС наблюдается такая ситуация после смены владельца в контейнере ( в ответ на ls -la .env.front):

-rw-rw-r-- 1 1001 1001 204 авг 25 13:28 .env.front

-- т.е. в основной ОС такой группы и юзера нет (точнее нет юзера и группы с таким id), поэтому нет прав на запись в основной ОС.
В данном случае права на запись группе даны (если нет прав на запись для группы - их можно дать), поэтому просто добавим нужного нам юзера в эту группу с тем же id, что и группа в контейнер (в нашем случае это 1001).

docker Смена владельцев в основной ОС (при смене контейнера). Как этого избержать

Судя по всему в Docker (18 версии, в частности) на Linux и на хосте и в контейнере при смене владельца устанавливается один и тот же uid пользователя, если вам нужны разные владельцы в контейнере и на хосте, это может привести к проблемам.

Pages

Subscribe to RSS - docker