Solyar
Для этого больше entrypoint подходит
Скорее как точка входа (лул) а через CMD аргументы передавать
Solyar
ENTRYPOINT [“/app”] CMD [“-help”]
Solyar
На выходе имеем /app -help
Alexander
Скорее как точка входа (лул) а через CMD аргументы передавать
Да. Но вот эти две или более команд логичнее разместить в скрипте entrypointа.
Solyar
Пилишь условно: entrypoint.sh: #!/bin/bash set -o pipefail echo “Hello $1” echo “Hello again $1” Dockerfile: COPY entrypoint.sh . RUN chmod +x entrypoint.sh ENTRYPOINT [“/entrypoint.sh”] CMD [“George”] Start: docker run my-cool-image Output: >>> Hello George >>> Hello again George
Solyar
Snake
Спасибо, много полезной инфы за короткий промежуток времени
Павел
django.db.utils.OperationalError: connection to server at "db" (172.18.0.3), port 5432 failed: FATAL: password authentication failed for user "postgres" вот файл docker-compose: version: '3.9' services: db: image: postgres:12-alpine container_name: db ports: - "5432:5432" networks: - main env_file: - .env.dev volumes: - ./data/postgresql:/var/lib/postgresql/data web: container_name: web build: context: . dockerfile: Dockerfile command: > sh -c "python3 manage.py migrate && python3 manage.py wait_for_db && python3 manage.py runserver 0.0.0.0:8000" volumes: - .:/backend ports: - "8000:8000" networks: - main depends_on: - db env_file: - .env.dev redis: container_name: redis image: redis:alpine networks: - main celery: container_name: celery restart: always build: context: . command: celery -A settings worker -l info volumes: - .:/backend env_file: - ./.env.dev networks: - main depends_on: - db - redis - web celery-beat: container_name: celery_beat build: context: . command: celery -A settings beat -l info volumes: - .:/backend env_file: - ./.env.dev networks: - main depends_on: - db - redis - web networks: main: вот .env.dev DATABASE_NAME=dev_db DATABASE_USER=postgres DATABASE_PASSWORD=dev_dbpassword DATABASE_HOST=db DATABASE_PORT=5432 POSTGRES_DB=dev_db POSTGRES_USER=postgres POSTGRES_PASSWORD=dev_dbpassword CELERY_BROKER=redis://redis:6379/0 CELERY_BACKEND=redis://redis:6379/0 кто-нибудь понимает в чем тут дело?
Siroga 🇺🇦
FATAL: password authentication failed for user "postgres" В ошибке все четко написано
Siroga 🇺🇦
Вы ошибку перевели или просто угадываете?
Александр
Вы ошибку перевели или просто угадываете?
Это новая формация админов: их только гуглить научили. Вот поэтому они и постят тупо логи, чтобы им все разжевали, перевели и предложили over 1000 решений
Vitaly
Это новая формация админов: их только гуглить научили. Вот поэтому они и постят тупо логи, чтобы им все разжевали, перевели и предложили over 1000 решений
не, если бы научили гуглить, проблем бы небыло как раз ) Ибо 80% вопросов которые проскакивают в тематических чатах гуглом решаются
Vitaly
)))
Igor
FROM node:16-alpine as builder ENV NODE_ENV build # USER node WORKDIR /home/node COPY package*.json ./ RUN npm i COPY --chown=node:node . . RUN npm run build RUN npm prune --production Ошибка enoent ENOENT: no such file or directory, open '/home/node/package.json' - что я делаю не так, вроде же копирую пекедж куда надо?
Andrey
Посмотреть что лежит в /home/node после выполнения COPY не предлагать?
Igor
Andrey
RUN ls -al (внезапно)
Andrey
обрезать докерфайл после COPY и посмотреть в контейнере, масса вариантов
Robocat
А ты запускаешь компоузом?
А зачем композером?
Gideon
А зачем композером?
Это лишь вопрос) была у меня подробная проблема,когда файл композер был в главной директории,а докерфайл типа в папке "docker") из за этого было разница в результате, из какой директории запускать)
Robocat
там есть такое понятие как context
Какой контекст? Кодить и кодить
Igor
Откуда запускаешь билд этого Dockerfile ? Прямо из папки где он лежит или в другом месте?
Да из папки. Я разобрался, спасибо. В целом мне надо сделать билд сервера и фронтенда в одном докерфайле, без докер компоуза ( а везде в основном примеры с ним )
Andrew
Всем привет, возможно кто-то может подсказать. Хочу запустить в докере cloudwatch_exporter с прокси. Запускаю в докер компоузе, но проблема с прокидыванием прокси в джавовское прилоежние. Выглядит конфиг так: cloudwatch: image: quay.io/prometheus/cloudwatch-exporter container_name: cloudwatch ports: - "9106:9106" restart: unless-stopped volumes: - '/root/config.yml:/config/config.yml' command: /bin/bash -c "java -Dhttp.proxyHost=hostname -Dhttp.proxyPort=8888 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass -jar /cloudwatch_exporter.jar 9106 /config/config.yml" Пытаюсь запустить, на что мне выдает ошибку на какую-то кодировку. cloudwatch | Exception in thread "main" unacceptable code point '' (0x7F) special characters are not allowed Погуглив нашел совет что надо копировать с редактора где кодировка utf-8, но мне не помогло. Без command сервис работает как надо, но без необходимых мне доступов. Возможно есть вариант прокинуть прокси не через баш команду а как-то через джавы команду? (если убираю /bin/bash то не работает)
Roman
Добрый день всем ) я новичок в докере и у меня М1 при сборке на команде RUN ACCEPT_EULA=Y apt-get install -y --no-install-recommends \ unixodbc-dev \ msodbcsql17 происходит ошибка альтернатива для м1 у кого-то в запасе имеется?
Roman
А что мешает собирать под архитектуру
Знания Проект давно в проде Я сегодня 1 день
Eugene
А тьфу, извиняюсь это в самом контейнере
Konstantin
docker build --platform amd64
Roman
Господа, добрый вечер :) Подскажите нубу, можно как-то заставить docker внутри контейнера запускать скрипты /etc/init.d? Мне нужно внутри одного контейнера запускать несколько процессов и было бы удобно делать это в образе debian через скрипты /etc/init.d
Roman
1 процесс на контейнер
Это уже идеология. Вопрос в возможности реализации указанного в вопросе.
Konstantin
В доке есть пример
Konstantin
https://docs.docker.com/config/containers/multi-service_container/
Konstantin
Конфа похода на системд
Roman
да, решение на нем видел. Думал может через штатные скрипты возможно. Было бы более удобно. Значит буду юзать supervisord, спасибо.
Konstantin
Можно и баш, но если тебе нужно по разному их обслуживать и зависимости ставить, таймаут и все такое, то супервизорд будет проще
Jasur
добрый день коллеги у меня странная ситуация, есть Dockerfile есть docker-compose.yml изменяю код приложение и запускаю компоуз контейнеры работают изменние видна подвох в том что в compose version: '3.7' services: web: image: jasuryu/crm:test container_name: "yaponamama_web" restart: always command: bash entrypoint.sh volumes: - .:/usr/src/app - ./static:/usr/src/app/static - ./media:/usr/src/app/media ports: - 8000:8000 env_file: - ./.env.dev depends_on: - db тоесть image из dockerhub а я docker push не делаю но изменении видны) я даже docker build не делаю после измение кода) а вот Dockerfile FROM python:3.9.9 WORKDIR /usr/src/app ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 RUN pip install --upgrade pip COPY requirements.txt /usr/src/app RUN python -m pip install daphne RUN python -m pip install --upgrade pip RUN pip install -r requirements.txt COPY . /usr/src/app
Andrew
Всем привет, возможно кто-то может подсказать. Хочу запустить в докере cloudwatch_exporter с прокси. Запускаю в докер компоузе, но проблема с прокидыванием прокси в джавовское прилоежние. Выглядит конфиг так: cloudwatch: image: quay.io/prometheus/cloudwatch-exporter container_name: cloudwatch ports: - "9106:9106" restart: unless-stopped volumes: - '/root/config.yml:/config/config.yml' command: /bin/bash -c "java -Dhttp.proxyHost=hostname -Dhttp.proxyPort=8888 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass -jar /cloudwatch_exporter.jar 9106 /config/config.yml" Пытаюсь запустить, на что мне выдает ошибку на какую-то кодировку. cloudwatch | Exception in thread "main" unacceptable code point '' (0x7F) special characters are not allowed Погуглив нашел совет что надо копировать с редактора где кодировка utf-8, но мне не помогло. Без command сервис работает как надо, но без необходимых мне доступов. Возможно есть вариант прокинуть прокси не через баш команду а как-то через джавы команду? (если убираю /bin/bash то не работает)
Если вдруг кому-то пригодиться, то я решил эту проблему путем того что завел джаву с проксями через entrypoint в compose файле.
Null
Встречай самое захватывающее, яркое и масштабное IT-соревнование года. Это больше, чем хакатон. Регистрируйся на конкурс Лидеры цифровой трансформации, где тысячи представителей IT-профессий создают сервисы для улучшения жизни горожан. Тебя ждут: - Призовой фонд 20 000 000 ₽ - 10 задач и 2 недели на разработку - Подарки от партнеров и эксклюзивный мерч для финалистов - Грандиозный финал в формате двухдневного фестиваля - Возможность пилотирования твоего прототипа и создания стартапа В этом году участникам предстоит разработать ряд востребованных городом решений: от интерактивной карты ВДНХ и платформы для медицинской разметки до рекомендательных сервисов по размещению московских постаматов и выявлению перспективных производственных ниш. Подай заявку прямо сейчас: https://clck.ru/325X9i В Telegram-чате конкурса ты узнаешь подробности и найдешь команду https://t.me/leaders_2022
Anonymous
Добрый день. Для swarm кластера из 3х нод, каждая на отдельной тачке, какая конфигурация корректнее и в чем разница: 2 managers 1 worker или 1 manager 2 worker?
Alexander
3 manager, кмк
Anonymous
А в чем именно разница? Как это внутри оркестрируется, при всех менеджерах или при 1\2 воркерах?
Alexander
Менеджер такой же воркер, но дополнительно управляет swarm.
Solyar
а какой смысл делать 2 менеджера ?
Задал я вопрос директору компании на что он мне ответил так быстрее работать все будут 😄
Dan
А разве вот тут не про это речь идет как раз? https://docs.docker.com/engine/swarm/admin_guide/#add-manager-nodes-for-fault-tolerance
Dan
@roseveltx
Alexey
Я верно понимаю, что основные узлы - как раз менеджеры, если отваливается менеджер, и он единственный, то весь кластер падает. А если менеджеров несколько, то в случае падения одного, другой спокойно работает. Ну с воркерами и так понятно, они спокойно рулятся менеджером?
Konstantin
привет всем
Konstantin
подскажите пожалуйста по поводу подключения монги в докере. почему то при старте проекта не хочет подключаться к монге и выдает ошибку подключения MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
Konstantin
А надо указать mongodb
Konstantin
mongodb://mongodb...
Konstantin
mongodb://mongodb...
MongooseServerSelectionError: getaddrinfo ENOTFOUND mongodb
Александр
Ребят, подскажите плз, все то что я пишу в DockerFile, ну например RUN rm -R /etc/apache2/sites-enabled/* /etc/apache2/sites-available/* /var/www/* — воспроизводится внутри контейнера? ну то есть на моей настоящей системе это ничего не удалит? Заранее благодарю
DK
Столкнулся с проблемой. Есть докер контейнер с php, приложение пытается коннектиться к другим микросервисам по ip адресу, доступным с VPN(vpn на хост машине включён). Если зайти с хост машины на ip микросервиса - вижу страницу но из докер контейнера - curl timeout. Ping внутри контейнера не сработал, словно он внутри докер сети стучится по ip, как такой кейс разрулить?
Konstantin
Или совпадает с адресами контейнеров
Black_Core
Всем привет .. Кто работал с Traefik .. у меня такой вопрос .. как заставить его не подключать свой сертификат а тупо редиректить 443 порт и брать сертификат который отдаёт тот контейнер ? а то стучит в 80й порт контейнера ставит свой сертификат и возвращает ответ на 443 .. имитирую защищённое соединение ..
Black_Core
Спасибо ..
🇷🇺 bdenisska
Всем привет, столкнулся с проблемой. Мультистейдж контейнер, получаю ошибку вида exec /signservice/signservice_app: no such file or directory, если в entrypoint указываю ENTRYPOINT [ "/signservice/signservice_app" ]. Если ENTRYPOINT [ "ls", "-l", "/signservice/signservice_app" ] То получаю -rwxrwxrwx 1 root root 11951333 Sep 27 11:33 /signservice/signservice_app Как такое возможно? Какой то сюрриализм. Сам файл является скомпилированным на первом стедже бинарным файлом