Max
подскажите куда копать: Есть два контейнера на одном хосте. Оба контейнера висят на одном bridge. Я могу попинговать один контейнер из другого, но при попытке подключиться на какой либо порт получаю connection refused.
недоступны из мира порты, либо скоуп бриджа менять, что не оч, либо expose портов делать вида hostport:conteinerport, тогда они прокинутся на порт, сейчас видимо нет
KOPACb
неужели нет one-time-run в компостере
KOPACb
вернее run_on_update
KOPACb
а через docker run -it *** bash запускается?
KOPACb
типа cd / /entrypoint.sh
Sergei
Докер подразумевает, что one-off запуски происходят через docker-compose run
Sergei
Это официальная позиция из фака
Max
типа cd / /entrypoint.sh
он же валится, в остановленный контейнер не зайти. добавил RUN stat щас посмотрю что выплюнет
KOPACb
то есть надо копать в сторону entrypoint.sh и дрючить базу на каждом запуске контейнера?
Max
то есть надо копать в сторону entrypoint.sh и дрючить базу на каждом запуске контейнера?
да хз, работало всё до того как стал фиксить докерфайл и запуск
KOPACb
шебанг проверь кстати
Max
тоже мысль
Max
есть шебанг
KOPACb
/bin/bash может отсутствовать
Sluagh
недоступны из мира порты, либо скоуп бриджа менять, что не оч, либо expose портов делать вида hostport:conteinerport, тогда они прокинутся на порт, сейчас видимо нет
из мира мне не надо, там все хорошо я их пробросил. Нужно чтобы один контейнер смог увидеть порт другого контейнера.
Max
это рабочие докерыайлы, я полез фиксить пару шту и чота поломалось, а что хз. стопудово если откачу правки - заработает, но логику понять не могу
Max
из мира мне не надо, там все хорошо я их пробросил. Нужно чтобы один контейнер смог увидеть порт другого контейнера.
буквально в пятницу маны перечитывал - контейнеры в рамках одного _кастомного_ сет девайса (бриджа по дефолоту) видят все порты всех
Sergei
вернее run_on_update
мб restart: no будет единожды запускать при обновлении, а убивать контейнер можно изнутри после тасков, но это проверить надо
Max
насчте дефолтного бриджа не скажу,, вроде нет
Max
ok, пошел пилить кастом бридж
https://docs.docker.com/network/bridge/
Max
нзчт
KOPACb
простоидея как раз была в контейнере который накатит на базу всякое и умрет.
KOPACb
при обновлении он пересобреется и накатит дельты
Max
что за шляпа - два практически идентичных контейнера, RUN stat ./entrypoint.sh отрабатывает в обоих ок и показывает инфу ENTRYPOINT ["./entrypoint.sh"] в одном отрабатывает, в другом нет.
Max
обычно так и делаю, не моё поделие) вот сел фиксить и началось
Max
переделал на абсолютные, без изменений. не понимаю, как может stat работать, а на следующей шаге stat unknown
Max
что за гребаная магия
Max
начинает прояснятся - без монтирования вольюмов завелось. т.е. косяк в монтировании, но ошибка ппц какая информативная
Max
да, это мой косяк, я при монтировании /app подменял и тупил.. фактически всё верно отрабатывало
Дивопсина сутулая породистая
Салют всем! Ребят кто может подсказать такой момент, есть приложение на vuejs упакованное в докер. Возникает ошибка 502 при загрузке файла , с тем учетом что я docker-compose прикручиваю volume version: '3' services: video_uploader: build: ./app ports: - "127.0.0.1:9092:9092" volumes: - './data/videos:/app/public/videos/threads' Если я убираю volumes полностью то файлики нормально загружаются. В чем может быть проблема?
Ильхом
Ребят как дать прав на директорию ci/mysql?
Ильхом
Нуб в докере.. А сделки то нужно
Sergei
С прошлой проблемой разобрался?
Ильхом
Хотя там несколько моментов было
Ильхом
Путь не правильный и вот это вот
Ильхом
О, я был прав. docker-compose up -d db mail redis
А это пор побывал. Скачал и тоже ошибку дало (
Sergei
Тебе нужны права на хосте или в контейнере к вольюму?
Sergei
С выключенным?
Ильхом
Тебе нужны права на хосте или в контейнере к вольюму?
Еще б я шарил 🤯 в логах контейнера где стоит mysql server такая ошибка mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied) из-за нее контейнер с бд не включается
Дивопсина сутулая породистая
Он в обоих случая закачивает только при volume отдает 502, и все равно сохраняет
Sergei
Логи приложения молчат?
Ильхом
Max
Он в обоих случая закачивает только при volume отдает 502, и все равно сохраняет
значит кому то прав хватает на запись,, но не хватает на чтение/выполнение
Anton
А эт ты кому?)
composer logs -f <container_name>
Ильхом
Тебе нужны права на хосте или в контейнере к вольюму?
в конетйнере к вольюму получается мне нужны
Дивопсина сутулая породистая
Ильхом
composer logs -f <container_name>
Сейчас попробуй
Max
Спасибо пойду дальше доку читать
успехов) попробуй уточнить вопрос, мб на вскидку скажу куда копать
Дивопсина сутулая породистая
успехов) попробуй уточнить вопрос, мб на вскидку скажу куда копать
Да как разработчики написали приложеньку, надо ее в докер закорячить вот и весь сказ)
Max
мало инфы)
Ильхом
composer logs -f <container_name>
это логи показывает зачем мне это?
Anton
это логи показывает зачем мне это?
думал ты не знаешь как показать логи)
Ильхом
😅😅
Anton
пользователь какой в контейнере? 1000?
Ильхом
пользователь какой в контейнере? 1000?
Еще бы знать как проверит
Ильхом
У меня сейчас по сути надо узнать как дать прав на директорию ci/mysql? в конетйнере к вольюму получается мне нужны права дать
Anton
docker exec -it <container_name> sh вроде так
Ильхом
А через это img.. Создаются
Ильхом
Dockerfile FROM python:3.6.9-slim-stretch as base RUN apt-get update && apt-get install -y curl git libxml2-dev libxslt1-dev gnupg libjpeg62-turbo-dev python3-dev default-libmysqlclient-dev RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - RUN apt-get update && apt-get install -y nodejs && \ rm -rf /var/lib/apt/lists/* FROM base as build WORKDIR /build RUN apt-get update && \ apt-get install -y build-essential default-libmysqlclient-dev python-dev zlib1g-dev && \ rm -rf /var/lib/apt/lists/* COPY requirements.txt ./ RUN pip install -r requirements.txt FROM base as release WORKDIR /app COPY --from=build /root/.cache /root/.cache COPY . . RUN addgroup --gid 998 gitlab-runner && useradd --uid 999 --gid 998 gitlab-runner RUN pip install -r requirements.txt ARG CI_ENVIRONMENT_NAME=dev ENV CI_ENVIRONMENT_NAME=${CI_ENVIRONMENT_NAME} RUN python manage.py collectstatic --noinput VOLUME /app/static VOLUME /app/media docker-compose version: '2.4' services: web: image: gitlab.brln.tv:4567/rmb/xxx/web:${CI_COMMIT_SHA} hostname: web command: bash -c "gunicorn wsgi:application -c gunicorn.conf.py" volumes: - ./ci/logs:/app/ci/logs - ./media:/app/media - ./static:/app/static depends_on: - db - redis restart: always db: image: percona:latest hostname: db command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: somepass ports: - "0.0.0.0:3306:3306" volumes: # хранилище данных - ./ci/mysql:/var/lib/mysql - ./ci/mysqld.conf:/etc/mysql/percona-server.conf.d/mysqld.cnf restart: always nginx: image: nginx:mainline ports: - "0.0.0.0:80:80" - "0.0.0.0:443:443" volumes: # хранилища конфигов и статических файлов - ./ci/nginx/dev:/etc/nginx/conf.d:ro - ./ci/seo/subdomains:/app/subdomains:ro - ./ci/ssl:/app/ssl:ro - ./ci/nginx/passwd:/etc/nginx/passwd volumes_from: - web:ro depends_on: - web restart: always mail: image: boky/postfix ports: - "0.0.0.0:587:587" environment: HOSTNAME: example.com ALLOWED_SENDER_DOMAINS: example.com depends_on: - web restart: always redis: image: redis:4-alpine ports: - "6380:6379" command: ["redis-server", "--appendonly", "yes"] hostname: redis volumes: - ./ci/redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 1s timeout: 3s retries: 30 restart: always
Anton
посмотри в контейнере владельца на /var/lib/mysql и свой UID глянь на хостовой
Ильхом
Error response from daemon: Container fe25b550965429721d49b9e58fec87c084538860f2f25a164626de2e9b943648 is restarting, wait until the container is running
Anton
тогда останови все контейнеры
Anton
docker-compose down
Anton
и docker --rm -it <image_name> sh
Anton
только ж не имя контейнера, а имя образа (percona:latest)
Ильхом
Anton
ну толку, что они у тебя бесконечно в рестарте
Anton
ну что?