Evgeniy
вот так просто запусти и подергай разные хосты из контейнера (яндекс гугл и тд)
Evgeniy
чтобы понять нормально ли у тебя работает докер
потом останется проблема в твоем docker-compose.yml файлике
Vladimir
да
Vladimir
есть коннект
Vladimir
из альфины
Evgeniy
ну раз из "альфины" есть контакт
Значит проблема в твоем файле docker-compose.yml
комить все что касается network и пробуй запуститься с ним и настрой свой файлик
Vladimir
Evgeniy
сейчас разложу гадальные карты они говоря закомить 8, 15, 22 строку
откуда я знаю какие именно строки у тебя в том файле ?
Vladimir
Vladimir
закомментировать строки связанные с нетверком?
Evgeniy
наверно да
скорей всего из за кривых настроек сети у тебя контейнеры не имеют доступа в инетрнет или имеют какой то специфичный
Vladimir
наверно да
скорей всего из за кривых настроек сети у тебя контейнеры не имеют доступа в инетрнет или имеют какой то специфичный
version: '3.5'
services:
db:
container_name: ${PREFIX_CONTAINER_NAME}-db
build:
context: ./docker/mysql
command: ["--default-authentication-plugin=mysql_native_password", "--innodb-flush-method=fsync"]
# ports:
# - "${DB_PORT}:3306"
expose:
- "3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- sql-data:/var/lib/mysql
- ./docker/mysql/custom.cnf:/etc/mysql/conf.d/custom.cnf
- ./logs/mysql:/var/log/mysql/
restart: unless-stopped
networks:
- db
- php
nginx:
container_name: ${PREFIX_CONTAINER_NAME}-nginx
build: docker/nginx
ports:
- "${NGINX_PORT}:80"
volumes:
- ./backend:/var/www:cached
- ./logs/nginx:/var/log/nginx:cached
# - ./certbot:/etc/letsencrypt
restart: unless-stopped
# user: "1000:1000"
depends_on:
- db
networks:
- db
- php
php:
container_name: ${PREFIX_CONTAINER_NAME}-php-fpm
build: docker/php
expose:
- "9000"
volumes:
- ./backend:/var/www:cached
- ./logs/php:/var/logs:cached
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
restart: unless-stopped
depends_on:
- db
#- redis
#- memcached
networks:
- db
- php
- elk
#- redis
#- memcached
#- rabbitmq
phpmyadmin:
container_name: ${PREFIX_CONTAINER_NAME}-phpmyadmin
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- ${BD_ADMIN_PORT}:80
networks:
- db
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
networks:
db:
php:
elk:
volumes:
sql-data:
Вот собственно и весь докер-компоуз проекта, до этого точно такая же сборка на винде работала ок
Evgeniy
для начала зачем тебе 3 сети ?
Vladimir
брал где-то в недрах гитхаба пару лет назад
Vladimir
легаси :)
Vladimir
оно работает, я не трогаю
Evgeniy
ну то есть философский вопрос написать что надо, а не надо не писать ну его нафиг, пойдем стэковерфлоить и будем из кусков собирать свой франкенштейн
Vladimir
Evgeniy
просто во всех контейнерах закомить строки с networks
и глобально эти networks
Evgeniy
пусть все контейнеры будут в одной сети
Evgeniy
сделай docker-compose down
Evgeniy
потом когда запустишь свои контейнеры
подключись docker-compose exec php ifconfig и посмотри сколько интерфейсов у контейнера
Evgeniy
ну и посмотри в нем ip route list например
Evgeniy
и сравни вывод с тем что будет у docker run -it --rm alpine
Vladimir
Evgeniy
наверно контейнер не запущен
запусти вместо exec => run
Vladimir
сети кстати и в других контейнерах нет
Vladimir
в этой сборке
bnr
Здравствуйте хотел установить доккер
В чем проблема?)
Иван
Anton
День добрый, кто-нибудь сталкивался с Oracle Linux 8? Там менеджер пакетов dnf. Есть вот такой вот образ, где через него пакеты ставятся
https://github.com/percona/percona-docker/blob/main/percona-server-8.0/Dockerfile
Я от этого образа наследуюсь, пытаюсь создать свой:
FROM percona/percona-server:8.0.28-19
USER root
RUN set -ex; \
percona-release enable pxb-80 release \
&& dnf -y install percona-xtrabackup-80
Но мне dnf уже недоступен
> [2/3] RUN set -ex; percona-release enable pxb-80 release && dnf install percona-xtrabackup-80 -y:
#5 0.341 + percona-release enable pxb-80 release
#5 0.672 * Enabling the Percona XtraBackup 8.0 repository
#5 0.675 <*> All done!
#5 0.675 + dnf install percona-xtrabackup-80 -y
#5 0.675 /bin/sh: dnf: command not found
Есть идеи почему? В оригинальном образе не вижу никаких удалений менеджера...
Anton
Vadim
День добрый, мне в контейнере нужен крон но у докера нет крона. как быть
Vadim
есть ли какие-то адекватные проверенные решения
🎱𝕷𝖙𝖍𝖒🌙
Dmitriy
Всем привет! Столкнулся с проблемой прав внутри контейнера php+apache. Подскажите как решить, может кто сталкивался
Anton
Dmitriy
Evgeniy
Evgeniy
например user 1000
Evgeniy
https://docs.docker.com/engine/reference/run/#user
Anton
ubuntu
docker compose используешь для поднятия контейнеров? В свойствах сервиса можно указать user и указать uid юзера из хост стистемы. Обычно это 1000, проверить можешь, выполнив id -u на хосте
Dmitriy
Dmitriy
спасибо, с юзером попробую
Anton
-u 1000 тогда можешь указывать при docker run
Anton
короче, нужно запускать процесс из-под того uid, который у тебя на хосте
Evgeniy
другой вариант chmod 777 и анархия в папке
Anton
Так делать не нужно.
Evgeniy
только вот проблема с юзером что в mac он другой uid имеет и его надо выносить в .env
Anton
на мак ос вообще проблемы нет
Evgeniy
и тут начинается жесть с настройкой перед запуском надо проставить uid, gid и тд
Anton
На MaсOS вообще плевать на права, там докер работает иначе с файловой системой.
George
Evgeniy
еще раз
если захордкодить запуск контейнера от uid 1000
то при запуске на macos такого юзера НЕТ и запуск терпит фиаску
там дефолтный юзер то ли 502 то ли 534 или какая другая цифра
Anton
ты что-то путаешь)
Evgeniy
я маком не пользуюсь, но был опыт у людей с маком там uid другой бывает по умолчанию
Anton
ты можешь стартануть контейнер с любым uid, вне зависимости от его существования на хосте
Anton
да, там не 1000 по-умолчанию, но это ничего не меняет) Там с хоста доступ к файлам есть, которые создаются из-под контейнера
George
George
George
Anton
Anton
я на 100% точно не могу казать как именно работает, но я на нескольких машинах проверял, не смотря то, что внутри контейнера права на файлах светятся одни, на хост машине они (права) выглядят иначе. И доступ на редактирование есть.
Anton
А вообще, я давно закрыл эту проблему кастомным ентрипоинтом, в который из .env прокидываю UID/GID хостового юзера и в ентрипоинте сверяю их с юзером в контейнере
Evgeniy
ок дело вкуса
из моего опыта приходилось в .env выносить UID, GID и если они не заданы использовать 1000
но некоторым требовалось перед запуском делать конфигурацию - что как бы считаю минусом
George
George
George
В частности, когда шеришь каталог между контейнером и хостом
Anton
угу, это не дело вкуса, это особенность макс ос и докера. Там ничего с правами делать не нужно, с хоста все доступно и редактируется. В твоем случае, вероятно, причина была в чем-то другом
Evgeniy
Anton
Evgeniy
мы либо задаем пользователя корректно и живем счастливо, но надо конфигурировать
либо живем в мире анархии которая реализована какой то магией по факту сводящейся к тому что можно писать кому попало куда попало :) в маках
George
George
Evgeniy
Гиткип вообще тут не при делах
как обычно создают папку которой надо задать права и добавить в git ?
одно из простых решений создать папку, создать .gitkeep, задать права, индексировать, закомитить, пушнуть
George
Берут и создают
George
Где гит и где докер ?