Vadim
Вот такого вида. Для твоего случая тебе нужно будет добавить флаг --net=host для команды докер и в Connection String указать логин и пароль mongodb://monty:pass@localhost:27017 P.S. если в пароле появятся специальные символы, то его нужно будет обрамить в ""
🥷🏻
Принял
🥷🏻
Спасибо
🥷🏻
Сейчас буду пробовать
🥷🏻
Для этой команды ?
Vadim
У тебя в логах с такой ошибкой падало? BadValue: security.keyFile is required when authorization is enabled with replica sets try 'mongod --help' for more information
🥷🏻
Нет
Vadim
Ну по идее должно с такой. Я просто сейчас воспроизвёл ошибку. А тебе обязательно в конфигурации репликасета пускать? У тебя же одна реплика
🥷🏻
Призма не работает без реплики вообще
Vadim
А, ну тогда тебе нужно настроить аутентификацию для репликасета или отключить её по умолчанию
Vadim
Вот этот ишью должен помочь с этим https://github.com/docker-library/mongo/issues/475
Vadim
Потому что с образом всё норм. А вот с репликасетом нужно будет помудрить
Vadim
В общем, вот гайд на поднятие репликасета посредством докера https://medium.com/workleap/the-only-local-mongodb-replica-set-with-docker-compose-guide-youll-ever-need-2f0b74dd8384 . Выглядит правдоподобным
🥷🏻
Блин я вообще бот конечно
Vadim
Блин я вообще бот конечно
Ну ты указываешь логин и пароль, когда поднимаешь однонодовый репликасет MongoDB. А это требует настройки посредством конфига монги и создания Keyfile. Скинул выше гайд как можно такое с помощью Docker Compose запилить. Ну или отключай аутентификацию совсем, чтобы так не париться
🥷🏻
Как ее отключить
Vadim
Как ее отключить
Не указывать логин и пароль никакой. Можешь ещё--noauth указать P.S. я чекнул доку призмы, и правда для коннектора MongoDB требуется репликасет
🥷🏻
docker run --name mongo \ -p 27017:27017 \ -e MONGO_INITDB_ROOT_USERNAME="monty" \ -d mongo:5.0.3 --replSet rs0 ---noauth
🥷🏻
Так ?
Vadim
Так. Сначала пускай контейнер с однонодовым инстансом репликасета MongoDB docker run --name mongo \ -p 27017:27017 \ -d mongo:5.0.3 \ --replSet rs0 --bind_ip_all --noauth --noauth чтобы наверняка )) Потом инициализируешь реплику и всё гуд docker exec -it mongo mongosh --eval 'rs.initiate({_id: "rs0", members: [{ _id: 0, host: "localhost:27017" }]})' Это если на коленке. Попробовал - работает
Vadim
--bind_ip_all фиксит разрешение имён Docker по отношению к MongoDB
Vadim
Вот
Vadim
Ещё такая инструкция есть, где в самом конце предлагают сделать через Docker Compose https://www.sohamkamani.com/docker/mongo-replica-set/
Vadim
Но это, естественно, небезопасная конфигурация. Рекомендую всё-таки настроить потом как-нибудь аутентификацию. А то залезут и все данные выкачают
🥷🏻
Error occurred during query execution: ConnectorError(ConnectorError { user_facing_error: None, kind: AuthenticationFailed { user: "SCRAM failure: Authentication failed." }, transient: false })
🥷🏻
Ошибку кидает
🥷🏻
Понял
🥷🏻
Спасибо
Nikita
Всем привет ! При поднятии микросервиса на java(Spring boot + hibernate) в контейнере Как правильно указывать настройки коннекта к локальной бд postgreSQL ( Указываю урл в пропертиес spring.datasource.url=jdbc:postgresql://127.0.0.1:32/postgres либо jdbc:postgresql://localhost:5432/postgres) Бд запущена не в контейнере . При запуске контейнера стабильно падает org.hibernate.exception.JDBCConnectionException: unable to obtain isolated JDBC connection [Connection to 127.0.0.1:32 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.] [n/a]
Nikita
host.docker.internal, а не localhost. Либо внешний IP хоста
Правильно ли я вас понимаю Запускаю контейнер командой docker run --name dao --add-host host.docker.internal:127.0.0.1 -p 8081:8081 -d dao:0.0.1 а в properties устанавливаю spring.datasource.url=jdbc:postgresql://host.docker.internal:5432/postgres ?
Nikita
--add-host=host.docker.internal:host-gateway
host-gateway это константа ?
Daniil Yurevich
host-gateway это константа ?
У тебя docker добавит в hosts запись, которая будет соответствовать твоему localhost
Daniil Yurevich
Либо запускай с network mode host
Daniil Yurevich
У тебя docker добавит в hosts запись, которая будет соответствовать твоему localhost
Да, убедись, что твой постгрес слушает на 0.0.0.0 или хотя бы на тех интерфейсах, которые входит в docker network. Если слушает на 127.0.0.1 то тут только networ mode host
Daniil Yurevich
Либо не используй docker.internal
Daniil Yurevich
Когда используешь network mode host тебе неи нужды указывать -p Твоя поилажка сразу запустится на порту
Daniil Yurevich
docker run -dt --name dao --network=host dao:0.0.1
Daniil Yurevich
docker run -dt --name dao --network=host dao:0.0.1
Пишу с телефона, но вроде так должно быть
Nikita
Тогда postgres перевешай на 0.0.0.0
Перевешивается путем изменения pg_hba.conf и postgresql.conf ?
Daniil Yurevich
Nikita
Это пропертя ?
Nikita
Это пробовал?
Нет Я полез пробовать постгрю вешать на нули
Максим
ubuntu 22
Тогда как сказали здесь https://t.me/ru_docker/125866
Nikita
Vyacheslav
Господа, подкиньте рабочий способ получения wildcard в traefik через letsencrypt dnschallenge, перепробовал много инструкций, но при запуске у меня не просит сделать cname запись, вообще никаких сообщений на тему резолва, но если запустить контейнер с использованием поддомена из wildcard, то просит сделать txt запись для конкретного. https://pastebin.com/0HVecsSJ
Alexander 🌨
Господа, подкиньте рабочий способ получения wildcard в traefik через letsencrypt dnschallenge, перепробовал много инструкций, но при запуске у меня не просит сделать cname запись, вообще никаких сообщений на тему резолва, но если запустить контейнер с использованием поддомена из wildcard, то просит сделать txt запись для конкретного. https://pastebin.com/0HVecsSJ
Сделай в статической конфигурации в https точке. Я хз как люди настраивают через command, не читается вообще. Чем не устраивает обычный yaml файл. Я понял бы если больше нет настроек которые хранятся в волюме, то ещё можно все запихать в compose.
Alexander 🌨
А что есть разница между комманд и в конфигурации?
Нет, читать проще настройки. У тебя там настройки не правильные по части tls.
Vyacheslav
Нет, читать проще настройки. У тебя там настройки не правильные по части tls.
хм, ошибки увидел, сейчас подправлю, спасибо, странно, что оно вообще запускается
Rose
Привет, Анастасия! Добро пожаловать в RU.Docker — Официальное Русское Сообщество! Если ты не 🤖 ты знаешь что делать :)
ᎠᴇvᎧuᴇsᴛ #ᏦᏚᎻᎢᎬᎪᎷ #ᎠᎬᏚᎪᏆᏴᏒᏫ #ᏌNᎠᎬᎰᏆNᎠᎬᎠᏴᏒᏫ
Всех приветствую, подскажите пожалуйста, в чём проблема?
ᎠᴇvᎧuᴇsᴛ #ᏦᏚᎻᎢᎬᎪᎷ #ᎠᎬᏚᎪᏆᏴᏒᏫ #ᏌNᎠᎬᎰᏆNᎠᎬᎠᏴᏒᏫ
# --- Этап 1: Сборка (Builder) --- FROM python:3.8-slim-buster AS builder ARG APP_UID=1000 ARG APP_GID=1000 ENV HIKKA_PIP_NO_CACHE_DIR=1 \ HIKKA_PYTHONUNBUFFERED=1 # Обновляем и устанавливаем необходимые пакеты для сборки (ОДНИМ ЗАПУСКОМ) RUN apt-get update && \ apt-get install -y --no-install-recommends git python3-dev gcc && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Клонируем репозиторий (ДО установки зависимостей для кэширования) WORKDIR /app RUN git clone https://github.com/tot882/hikka.git . # Создаем виртуальное окружение (ДО копирования requirements.txt) RUN python -m venv /opt/venv # Обновляем pip RUN /opt/venv/bin/pip install --upgrade pip # Копируем только requirements.txt (Кэширование!) COPY requirements.txt . # Устанавливаем зависимости в виртуальное окружение RUN /opt/venv/bin/pip install --no-warn-script-location --no-cache-dir -r requirements.txt # Копируем остальной код приложения (ПОСЛЕ установки зависимостей) WORKDIR /app COPY . . # Копируем ВСЕ файлы, игнорируя .dockerignore # --- Этап 2: Финальный образ (Runtime) --- FROM python:3.8-slim-buster ARG APP_UID=1000 ARG APP_GID=1000 # Создаем пользователя и группу RUN groupadd -g ${APP_GID} appuser && \ useradd -u ${APP_UID} -g appuser -m appuser ENV HIKKA_DOCKER=true \ HIKKA_RATE=basic \ HIKKA_PIP_NO_CACHE_DIR=1 \ HOME=/home/appuser # Устанавливаем необходимые пакеты для работы. Включаем ca-certificates для HTTPS RUN apt-get update && \ apt-get install -y --no-install-recommends curl libcairo2 libmagic1 ffmpeg neofetch apparmor ca-certificates && \ # Проверяем, что AppArmor установлен и работает dpkg -s apparmor && \ systemctl is-active apparmor || true && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Удаляем потенциально опасные инструменты. Объединяем в одну команду RUN RUN apt-get update && apt-get install -y --no-install-recommends netcat netcat-traditional tcpdump nmap telnet openssh-client && \ apt-get purge -y netcat netcat-traditional tcpdump nmap telnet openssh-client && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Копируем собранные файлы из этапа сборки и виртуальное окружение COPY --from=builder --chown=appuser:appuser /app /app COPY --from=builder --chown=appuser:appuser /opt/venv /opt/venv # Устанавливаем рабочую директорию WORKDIR /app # Копируем профиль AppArmor COPY apparmor-profile /etc/apparmor.d/hikka RUN chmod 644 /etc/apparmor.d/hikka && \ apparmor_parser -r /etc/apparmor.d/hikka && \ aa-enforce hikka # Переключаемся на пользователя appuser USER appuser # Активируем виртуальное окружение через скрипт (НАИБОЛЕЕ НАДЕЖНЫЙ СПОСОБ) RUN echo -e '#!/bin/bash\n source /opt/venv/bin/activate\n exec python -m hikka' > /app/start.sh && \ chmod +x /app/start.sh # Запускаем приложение через скрипт CMD ["/app/start.sh"]
ᎠᴇvᎧuᴇsᴛ #ᏦᏚᎻᎢᎬᎪᎷ #ᎠᎬᏚᎪᏆᏴᏒᏫ #ᏌNᎠᎬᎰᏆNᎠᎬᎠᏴᏒᏫ
Ошибку выводит такую: Dockerfile:34 -------------------- 32 | # Копируем остальной код приложения (ПОСЛЕ установки зависимостей) 33 | WORKDIR /app 34 | >>> COPY . . # Копируем ВСЕ файлы, игнорируя .dockerignore 35 | 36 | # --- Этап 2: Финальный образ (Runtime) --- -------------------- ERROR: failed to solve: cannot copy to non-directory: /var/lib/buildkit/runc-overlayfs/cachemounts/buildkit1798820041/app/.dockerignore Error: buildx failed with: ERROR: failed to solve: cannot copy to non-directory: /var/lib/buildkit/runc-overlayfs/cachemounts/buildkit1798820041/app/.dockerignore
ᎠᴇvᎧuᴇsᴛ #ᏦᏚᎻᎢᎬᎪᎷ #ᎠᎬᏚᎪᏆᏴᏒᏫ #ᏌNᎠᎬᎰᏆNᎠᎬᎠᏴᏒᏫ
Artem
всем привет! я новичок в докере, столкнулся с разверткой проекта с такой проблемой нет интернета внутри docker контейнеров, соответственно выдает ошибку ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? errors pretty printing info подскажите, пожалуйста, какие могут быть решения данной проблемы? из того, что уже сделано: 1. докер перезапускал (и sudo systemctl restart docker и sudo service docker restart) 2. докер переустаналивал 3. chown делал 4. возможно еще что-то, но забыл указать
Artem
Так а ошибка то какая? Что в sudo systemctl status docker видно?
ошибку приложил в сообщении, выделенно кодом вот состояние докера, все ок
Artem
Покажите вывод sudo docker ps
так же выдает ошибку Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Iozhiggg
так же выдает ошибку Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
У вашего пользователя нет прав на докер. Дайте ему права или добавьте в группу докер.
Iozhiggg
добавлял юзера в группу докера
А он не от рута ли у вас запущен?)))
Iozhiggg
Перелогиневался в системе после того как добавил пользователя в группу?