🅰️rkadiy
подозеваю на iptables докера. с хоста ссылка открывается, т.е. с роутами вроде все в порядке.
Nicolai
Alex
Всем привет! Помогите плиз - наболевший вопрос: есть два контейнера: 1. Аппликуха (docker_test_web имя контейнера) 2. Постгрес (база короч) После того как контейнеры собрались через docker-compose up --build -d, нужно запустить в одной из директорий Аппликухи две комманды для апдейта БД - alembic revision --autogenerate -m "some migration" - alembic upgrade head При этом туда нужно передать некоторые параметры внешнего окружения Что я пытался сделать: docker container run \ -e POSTGRES_USER=$POSTGRES_USER \ -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \ -e POSTGRES_DB=$POSTGRES_DB \ -e DB_HOST=$DB_HOST \ -e DB_PORT=$DB_PORT \ -it docker_test_web /bin/bash -c 'cd web/database && alembic revision --autogenerate -m "init" && alembic upgrade head' передаю те же данные, что и при билде через compose Но получаю ошибку, что он не понимает хост контейнера с БД (psycopg2.OperationalError) could not translate host name "postgres" to address: Name or service not known Вот compose файл version: '3' services: web: container_name: docker_test_web build: ./web command: gunicorn -b :8000 web.wsgi:app --log-level=debug --log-file=- expose: - "8000" environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - DB_PORT - DB_HOST networks: - web_network - db_network restart: always depends_on: - postgres # restart: unless-stopped postgres: container_name: docker_test_postgres #build: ./postgresql image: postgres:10.5 # volumes: # - web-db:/var/lib/postgresql/data environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB expose: - "5432" networks: - db_network # restart: unless-stopped #volumes: # web-code: # web-db: # web_nginx: networks: web_network: driver: bridge db_network: driver: bridge
Konstantin
Всем привет! Помогите плиз - наболевший вопрос: есть два контейнера: 1. Аппликуха (docker_test_web имя контейнера) 2. Постгрес (база короч) После того как контейнеры собрались через docker-compose up --build -d, нужно запустить в одной из директорий Аппликухи две комманды для апдейта БД - alembic revision --autogenerate -m "some migration" - alembic upgrade head При этом туда нужно передать некоторые параметры внешнего окружения Что я пытался сделать: docker container run \ -e POSTGRES_USER=$POSTGRES_USER \ -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \ -e POSTGRES_DB=$POSTGRES_DB \ -e DB_HOST=$DB_HOST \ -e DB_PORT=$DB_PORT \ -it docker_test_web /bin/bash -c 'cd web/database && alembic revision --autogenerate -m "init" && alembic upgrade head' передаю те же данные, что и при билде через compose Но получаю ошибку, что он не понимает хост контейнера с БД (psycopg2.OperationalError) could not translate host name "postgres" to address: Name or service not known Вот compose файл version: '3' services: web: container_name: docker_test_web build: ./web command: gunicorn -b :8000 web.wsgi:app --log-level=debug --log-file=- expose: - "8000" environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - DB_PORT - DB_HOST networks: - web_network - db_network restart: always depends_on: - postgres # restart: unless-stopped postgres: container_name: docker_test_postgres #build: ./postgresql image: postgres:10.5 # volumes: # - web-db:/var/lib/postgresql/data environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB expose: - "5432" networks: - db_network # restart: unless-stopped #volumes: # web-code: # web-db: # web_nginx: networks: web_network: driver: bridge db_network: driver: bridge
контейнер БД запущен, работает?
Alex
да и успешно получает запросы с Web контейнера
Konstantin
эээ, так ты таск через run запускаешь? он же не в сети с базой
Konstantin
засунь в композ с параметром restart: on-failure или как там правильно. чтобы он один раз запустился
Konstantin
или подключай к сети db_network
Alex
эээ, так ты таск через run запускаешь? он же не в сети с базой
но я же логинюсь внутрь WEB контейнера, который уже в сети с БД контейнером и от туда делаю запросы Иои это так не работает как я себе представил?)
Alex
засунь в композ с параметром restart: on-failure или как там правильно. чтобы он один раз запустился
извини не понял о чем речь Что засунуть и в какой из сервисов?)
Konstantin
тогда exec, а не run
Konstantin
ты новый запускаешь же
Sergey
Господа, поскажите. Абсолютный нуб на тему докера, только планирую попробовать. Там можно вообще поднять на сервере сам докер(сервер там или демон), а разрабатывать на отдельных машинах и билдить это удаленно на сервере? Где можно вообще ознакомиться с поисанием подобного workflow?
Yaroslav
хах
Alex
ты новый запускаешь же
😂😂 сейчас случится истерика....)) Спасибо огромное!! Не углядел, что вместо exec - run поставил... Еще раз спасибо))
🅰️rkadiy
Всем привет! Помогите плиз - наболевший вопрос: есть два контейнера: 1. Аппликуха (docker_test_web имя контейнера) 2. Постгрес (база короч) После того как контейнеры собрались через docker-compose up --build -d, нужно запустить в одной из директорий Аппликухи две комманды для апдейта БД - alembic revision --autogenerate -m "some migration" - alembic upgrade head При этом туда нужно передать некоторые параметры внешнего окружения Что я пытался сделать: docker container run \ -e POSTGRES_USER=$POSTGRES_USER \ -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \ -e POSTGRES_DB=$POSTGRES_DB \ -e DB_HOST=$DB_HOST \ -e DB_PORT=$DB_PORT \ -it docker_test_web /bin/bash -c 'cd web/database && alembic revision --autogenerate -m "init" && alembic upgrade head' передаю те же данные, что и при билде через compose Но получаю ошибку, что он не понимает хост контейнера с БД (psycopg2.OperationalError) could not translate host name "postgres" to address: Name or service not known Вот compose файл version: '3' services: web: container_name: docker_test_web build: ./web command: gunicorn -b :8000 web.wsgi:app --log-level=debug --log-file=- expose: - "8000" environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - DB_PORT - DB_HOST networks: - web_network - db_network restart: always depends_on: - postgres # restart: unless-stopped postgres: container_name: docker_test_postgres #build: ./postgresql image: postgres:10.5 # volumes: # - web-db:/var/lib/postgresql/data environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB expose: - "5432" networks: - db_network # restart: unless-stopped #volumes: # web-code: # web-db: # web_nginx: networks: web_network: driver: bridge db_network: driver: bridge
--link
Alex
В композ добавь отдельным сервисом, будет проще
можешь плиз показать пример как? Это будет сервис без image, только с одной коммандой или как? А то не оч понимаю, как такое можно сделать
Alex
services: web: container_name: docker_test_web build: ./web command: gunicorn -b :8000 web.wsgi:app ТУТ КАКАЯ-ТО КОММАНДА? expose: - "8000" environment: ... networks: - web_network - db_network depends_on: - postgres
Alex
так?
Konstantin
Ну почти, сервер то поднимать не нужно
Alex
не понял, почему не нужно? это я отредактировал существующий сервис и добавил туда "комманду" Имеешь ввиду еще один сервис добавить, в котором будет только комманда, которая будет логиниться на WEB контейнер и запускать там комманды? new_container: container_name: DB_migration_container command: docker container run \ -e POSTGRES_USER=$POSTGRES_USER \ -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \ -e POSTGRES_DB=$POSTGRES_DB \ -e DB_HOST=$DB_HOST \ -e DB_PORT=$DB_PORT \ -it docker_test_web /bin/bash -c 'cd web/database && alembic revision --autogenerate -m "init" && alembic upgrade head'
Konstantin
Ох)
Konstantin
Начиная с bash только
Alex
а как оно поймет, в каком контейнере это нужно запускать?)
Konstantin
забей, делай через exec)
Alex
забей, делай через exec)
долго и сложно объяснять или пошли не в том направлении?)
🅰️rkadiy
docker-compose --project-name foo -f config.yml run --rm web bash
🅰️rkadiy
вот например для джанго в кроне /usr/bin/flock -w 120 /var/tmp/app.lock docker-compose -p app -f /root/config/docker/docker-compose.yml run --rm -T web python3 manage.py cool_command 2>>/var/log/cool_comand.log
Sergey
Так, а чтобы этот docker-machine завёлся, надо сначала на сервере сгенерить сертификаты? Есть мануал для docker for windows?
Sergey
или я что-то не правильно понял
🅰️rkadiy
ssh-keygen ssh-copy-id -i path/to/generated-key user@remote-server
std::slavik
А как можно расшарить папку с контейнером без билда?
std::slavik
Параметрами запуска Или только ребилдить
twwlf
билдятся не контейнеры, а имаджи
twwlf
маунты и вольюмы – атрибуты контейнеров
std::slavik
а glusterfs ктонить ставил? я докер образ поставил, подключить удалось все
std::slavik
данные синхронизируются, хочу теперь вывести в хост файловую систему общую папку
Sergey
ооо глючстер ты смелый
Kyrylo
)))))))))))))))
Sergey
за основу брал gluster/gluster-kubernetes
Sergey
кто-нибудь подскажет как это добро лечить?
Sergey
при том heketi продолжает работать, но ясно понятно медленно шо псц
Sergey
Sergey
пытается работать с томами которые уже были удалены
Sergey
в @kubernetes_ru у товарища теперь запары с глючстером
std::slavik
а что вместо него?
Sergey
цеф
Sergey
смотря для чего
std::slavik
задача следующая - есть воркеры которые загружают файлы из инета, есть которые обрабатывают и есть которые выгружают сейчас у меня это руками через redis определяется чтобы загрузил если на определенной машине - на ней же и обрабатывал
std::slavik
но система растет и хочу сделать пока что так что загружается в distributed папку общую если обработку взял воркер на той же машине - он с нее же и получит а если на другой - получит через сеть просто для упрощения программирования больше чтоб не думать о том где этот файл лежит после обработки файл удаляется
std::slavik
вроде слышал системы типа кубернетиса это все сами из коробки разруливают в том числе распределение задач по воркерам с учетом файловой системы сетевой, ресурсов и тд
Ivan
воркеры это js?
User
воркеры это js?
Не. То веб-воркеры
Damian
Кто нибудь дебажил гошные сервисы с помощью компоуза, может есть рабочая конфига?
Damian
)]
Денис
Присоединяюсь за брейнфак
Konstantin
я джаву через iptables дебажил, не совсем ответ на вопрос, но какой вопрос, такой и ответ
Damian
Конфигурации в студию
Konstantin
Кидай конфиг, чё уж там
std::slavik
не дебажу заливаю сразу в продакшн и жду репортов
inqfen
Тебе не придётся ничего дебажить если ты ничего не делаешь Смекалистый нигер.Жпг
std::slavik
раз уж тут народ есть может подскажет кто - как при запуске контейнера расшарить внутри папку с хост системой? не через docker-compose
std::slavik
поднял glusterfs через докер контейнер, внутри контейнеров все подцепилось, все работает, хочу теперь вытащить на сервер папку
std::slavik
-v
то есть я шарю volume
std::slavik
и примонтирую его уже в хост системе куданить?
Konstantin
и примонтирую его уже в хост системе куданить?
может начнёшь с изучения докера? там всё не так