George
народ тут virtualenv python и докер умудряется сравнивать 🥺😳 что уж говорить о более похожих вещах
Andrey
Неправильно сравнивать эти два тула
почему? и то и то можно использовать для декларативного описания стека, который запускается в контейнерах. Просто так случилось, что docker-compose ставится по умолчанию вместе с docker for desktop, и неокрепшие умы почему-то вместо изучения самого docker'а начинают изучать docker-compose. А это то же самое, что начать изучать ansible
George
"А это то же самое, что начать изучать ansible"
только докер-компоуз изучать бессмысленно, т.к. это не универсальный инструмент, ога
Baktiyar
как в контейнере psql создать базу пользователя ?
George
берешь и создаешь. Команды стандартные
Baktiyar
в Dockerfile указываю скрипт initdb.sh внутри #!/usr/bin/env bash
createdb doscredo_back;
psql -c "create user doscredo_back with password 'doscredo_back'";
psql -c 'grant all privileges on database doscredo_back to doscredo_back'; все стандартно
George
ну, примерно так, ога
Andrey
George
ну, все равно initdb.sh нужно кинуть в специальный каталог, откуда штатный образ своим энтрипойнтом его выполнит
George
думаю, что у нас просто проблема в терминологии....
Baktiyar
получается вот docker-compose.yml version: '3'
services:
db:
image: postgres
restart: always
ports:
- "5435"
environment:
- POSTGRES_USER=doscredo_back
- POSTGRES_PASSWORD=doscredo_back
- POSTGRES_DB=doscredo_back
- POSTGRES_PORT=5432
web:
restart: always
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/code/doscredo_back
ports:
- "8003:8003"
depends_on:
- db
Baktiyar
который вызывает Dockerfile # Build from python image.
FROM python:3-onbuild
# Set project name
ENV DJANGO_SETTINGS_MODULE=ebrr.settings
ENV DJANGO_CONFIGURATION=BaseConfiguration
# Set volume for database and static files.
RUN mkdir -p /static /media /django_logs /code/doscredo_back
WORKDIR /code/doscredo_back
COPY ./requirements.txt /code/doscredo_back/requirements.txt
# Install python dependencies
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# Copy source code
COPY . /code/doscredo_back
CMD bash initdb.sh
CMD bash run.sh
Andrey
George
CMD bash initdb.sh
CMD bash run.sh
George
это так не работает
George
CMD как и ENTRYPOINT может быть только один
Baktiyar
а как правильно должно быть ?
George
хуже - ENTRYPOINT + CMD клеются вместе и становятся одной командой, которая при старте контейнера вызвается
George
George
1. на докерфайл - как их писать
2. на образ постгреса - как его расширять
Andrey
вот я как раз про это и говорил, люди лезут в d-c не понимая как докер работает
Baktiyar
thanx :)
Andrey
d-c это не кнопка "сделать зашибись", нужно знать, что такое образ, как он собирается, как выполняется контейнер, что такое volume. Элементарные вещи типа как указать psql имя сервера тоже нужны. Ковыряние d-c не даст этих знаний
Baktiyar
как сказал начал только вчера изучать, а сроки жмут
Andrey
да какая разница, если ты начал изучать математику с интегралов, не проходя таблицу умножения
Baktiyar
George
вообще на это есть универсальный ответ
George
не можешь сам - заплати тому, кто может
Ильдар
George
да, это я
Отличный ник
pa[aad
всем привет, есть у кого-то пример как для jwilder/nginx-proxy сделать подпапку на контейнер ?
Dmytro
Привет. У меня есть JS проект. Когда я билжу Dockerfile, то инструкция RUN npm install создает папку node_modules. Папка живет до команды docker run -v — так как я потом, не имея этой папки на host, делаю mount в контейнер. В итоге в контейнере нет папки node_modules. Этот вопрос можно решить через ENTRYPOINT. А как еще? Например, чтобы docker build мог на моем host создавать папки — но я не нагуглил.
George
docker build на твоем хосте не может создавать папки. точка
lm
как сделать без потери данных, чтобы volume которое local шарилось между нодами в swarm?
George
Нфс ? Я правда не знаю
lm
понял, благодарю
Ильдар
Подскажите пожалуйста если есть 10 проектов, у каждого свой docker compose например с MySQL+php+nodejs будет ли это есть значительно больше ресурсов чем 1 общий docker compose?
George
Ильдар
Eugene
есть какая-нибудь возможность в едином swarm для разных сервисов на разных нодах использовать один и тот же порт?
например, сервис с хапрокси, слушающий 4444 и какой-нибудь другой сервис за ним, который тоже слушает этот же порт, оба на разных машинах
получаю либо port 'yyy' is already in use by service 'xxx' as a host-published port для dnssr и mode: host либо port 'yyy' is already in use by service 'xxx' as an ingress port для дефолтного routing mesh
inqfen
Вроде там так нельзя
inqfen
Главное, зачем вообще?
Eugene
Вроде там так нельзя
вроде бы этому мешает mesh, т.к. с ним есть доступ к сервису по порту через любого из участников swarm
и с выключенным mesh, по идее, таких препятствий быть не должно, ан нет, всё равно не даёт поднять сервис на таком же порту, already in use by service ... as a host-published port
inqfen
Так раскидай на разные
Stanislav
А можно как-то на докер попадать из браузера не через
http://ocalhost::port
а например
http://my-loacal-site
?
Юрий
Прокси?
inqfen
hosts
Stanislav
Да, я уже нагуглил что вроде как единственный вариант - проксировать, даже ссылка какая-то есть на гит
https://github.com/cristianoliveira/ergo
Stanislav
Но как-то оно заморочисто получается
inqfen
hosts + обычный реверс прокси на nginx
inqfen
зачем что-то стороннее гуглить
Stanislav
реверс - это "в обратку"?.. что значит реверс?
Stanislav
Обратный прокси
Stanislav
Понял
Stanislav
Основную идею понял, nginx настроить скорее всего смогу.. Только теперь засомневался на сколько оно имеет смысл) Хех) Уже возможно может быть сайт просто поднять на nginx без докера, чем настраивать nginx на докер)
Stanislav
Хотя лучше уже пользоваться уже локалхот + порт и не выдумывать. Я просто думал есть решение совсем какое-то простое.
Ну а там посмотрим.
Спасибо за ответ!)
inqfen
шта
inqfen
Как контейнеры поднимешь так и будет
Stanislav
Все, я сам все понял
Юрий
Юрий
Простите.
Anonymous
Всем привет. Год назад пользовался докером на убунту и все работало без проблем с первого раза, есть мнениє что работа под виндой хуже или не так стабильна и очень много нюансов вплане пред настройки. У кого єсть експириенс в роботе под виндой посоветуйте что надо зделать в первую очередь до установки докера во время и после, имею ввиду то что не описано в мануале по установке)))
George
Anonymous
У меня уже полгода крутятся на винде10 докер контейнеры. Но это для поигрулек и учёбы, никакого продакшна.
Anonymous
Проблем не видел.
arts
Anonymous
ну начнем с момента установки разница между линукс контейнерами и виндовс?)
Eugene
George
Igor
всем привет, подскажите плз как в ENV засунуть значение proxy_pass из конфига нджинкса?
location /api {
proxy_pass http://127.0.0.1:5000;
inqfen
В env или наоборот его туда из env подставить?
inqfen
При старте
Igor
при старте подставить в энв, тк значение может меняться
George