Задать вопрос

Запуск postgres сервера на docker?

Есть таблица с одним столбцом под названием ID, там будут расположены ID юзеров, которые запустят ID.
И есть триггер слово kuku , которая показывает все id в таблице.

Сам код :

from aiogram import Bot, Dispatcher, executor
from aiogram.types import Message
import logging
import psycopg2
from aiogram.dispatcher.filters.builtin import CommandStart, Text

bot = Bot(token = 'СЕКРЕТ')
dp = Dispatcher(bot)
logging.basicConfig(format=u'%(filename)s [LINE:%(lineno)d] #%(levelname)-8s [%(asctime)s] %(message)s',
level=logging.INFO)

@dp.message_handler(CommandStart())
async def welcome(message: Message):
user_id = message.chat.id
conn = psycopg2.connect(dbname = "postgres",
user = "postgres",
password = "oybek123",
host = "localhost",
port = 5432)
cursor = conn.cursor()
cursor.execute("INSERT INTO id_list(id) VALUES(%s)",(user_id,))
conn.commit()
conn.close()

@dp.message_handler(Text(equals=["kuku"]))
async def feedback_press_button(message: Message):
conn = psycopg2.connect(dbname="postgres",
user="postgres",
password="oybek123",
host="localhost",
port=5432)
cursor = conn.cursor()
cursor.execute("SELECT * FROM id_list")
grab_data = cursor.fetchall()
for val in grab_data:
await message.answer(val[0])
conn.commit()
conn.close()

await message.answer("OK")

if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)

==============================

КОД не идеален, я его исправлю.. Но я бы хотел научиться делать следующее. Запустить БОТА+БАЗУ ДАННЫХ на докере.
Просто как эксперимент. Хочу научиться чему-то новому.

Вот докерфайл:

FROM python:3.9

RUN mkdir /src
WORKDIR /src
COPY . /src
RUN pip install -r requirements.txt

докер-композе:

version: '3.1'

services:
tgbot:
container_name: bot
build:
context: .
command: python main.py
restart: always
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example

adminer:
image: adminer
restart: always
ports:
- 8080:8080
===============================================================

1)настройки сервиса тгбот по-моему корректные, и сам бот запускается.

2) АДМИНЕР:

есть админка для БД админер, она запускается по адресу которую я задал вот тут

conn = psycopg2.connect(dbname = "postgres",
user = "postgres",
password = "oybek123",
host = "localhost",
port = 5432)

а порт у админера 8080. Когда я пишу в адресную строку localhost:8080 главная страница админера открывается.

Там есть типы баз данных, логин пароль название и тд.

3) Вот тут проблема:

я набираю
conn = psycopg2.connect(dbname = "postgres",
user = "postgres",
password = "oybek123",
host = "localhost",
port = 5432)


все данные отсюда в графу пароль адрес логин и тд и база данных не открывается. Выходят разного рода проблемы. Помогите пожалуйста мне найти правильный конфиг для корректной работы базы данных в веб интерфейсы, чтобы зайдя на админер и залогинясь в базу я мог смотреть ее наполнение(корректировать) и тд
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Но я бы хотел научиться делать следующее. Запустить БОТА+БАЗУ ДАННЫХ на докере.

Контейнеризация приложений предполагает разделение сщностей - а вы зачем-то хотите их рядом засунуть.

Это уже не говоря о том, что СУБД в докере - идея не очень хорошая в принципе, о чём было неоднократно и подробно описано.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы