База данных sqlite не создается в инструкции RUN во время сборки образа (python/pdm)Python

Программы на Python
Anonymous
База данных sqlite не создается в инструкции RUN во время сборки образа (python/pdm)

Сообщение Anonymous »

Я пытаюсь создать новый файл базы данных sqlite при запуске контейнера. Но файлы БД по какой-то причине не создаются. Когда я обычно запускаю файл внутри контейнера: pdm запускает src/db_setup.py, он работает нормально, и файл создается.
Так почему же RUN pdm не запускается -v src/db_setup.py шаг сделать это?
Я запускаю контейнер с помощью docker run --name de_pdm_container -p 8080:8080 -dt -v .:/app de_pdm
Dockerfile
FROM python:3.11-bookworm

WORKDIR /app

# install PDM
RUN pip install -U pdm
# disable update check
ENV PDM_CHECK_UPDATE=false

COPY pdm.lock pyproject.toml ./
RUN pdm install

COPY ./src ./src
COPY ./tests ./tests
COPY .devcontainer .devcontainer

RUN apt-get update
RUN apt-get install -y sqlite3 libsqlite3-dev
RUN pdm run -v src/db_setup.py

EXPOSE 8080

CMD ["pdm", "run", "uvicorn", "src.de_pdm.__init__:app", "--host", "0.0.0.0", "--port", "8080", "--reload"]

db_setup.py
import sqlite3

con = sqlite3.connect("test.db")
cursor = con.cursor()

con.set_trace_callback(print)

cursor.execute("DROP TABLE IF EXISTS tb;")
con.commit()
cursor.execute("""
CREATE TABLE tb(
country VARCHAR(50),
country_code VARCHAR(2),
year INT,
estimated_population_number INT,
estimated_prevalence INT
);
""")
con.commit()
con.close()


Подробнее здесь: https://stackoverflow.com/questions/786 ... python-pdm

Вернуться в «Python»