Я пытаюсь создать новый файл базы данных 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