Инструмент Django с Mariadb внутри контейнера Docker

Я немного запутался в том, как правильно разместить мое приложение django и сделать его независимым для запуска на любой машине.

Итак, в основном, мой текущий план таков:

У меня есть репозиторий в GitLab моего приложения Django.

Я клонирую его с помощью скрипта в некоторое место через ssh. Внутри этого репозитория я выполню

python3 manage.py makemigrations
python3 manage.py migrate
docker build . -t $1
docker run -d -p 8000:8000 $1

Где $1 будет параметром, который я передам для названия моего образа докера.

Мой Dockerfile выглядит следующим образом :

FROM python:3.6
RUN mkdir /Folder_Name
WORKDIR /Folder_Name
ADD . /Folder_Name
RUN pip3 install -r requirements.txt
EXPOSE 8000
CMD python3 manage.py runserver 0.0.0.0:8000 --noreload

Так что эта штука работает отлично. Но я чувствую, что есть более законный способ выполнить это за один раз.

Речь пойдет о контейнеризации моего приложения Django.

Перед всем этим нам также нужна база данных. Верно?

Теперь дело в том, что моя база данных - это MariaDB, которая снова запущена на docker. Для этого мне нужно войти в мой docker-контейнер MariaDB , и выполнить действия

  1. Create Database (CREATE DATABASE DB_NAME CHARACTER SET UTF8;)
  2. Create User CREATE USER invuser@SomeIP IDENTIFIED BY 'root';
  3. Grant Permission to user on that Database. GRANT ALL PRIVILEGES ON DB_NAME.* TO invuser@SomeIP;
  4. FLUSH PRIVILEGES;

Есть ли способ выполнить действия по созданию базы данных, пользователя и предоставления ему прав через скрипт? Или через файл docker?

Я в основном хочу иметь один файл скрипта или dockerfile, который запустит мое приложение.

И я не уверен, как этого добиться, когда мне нужно войти в мой контейнер mariadb для создания базы данных и т.д. и т.п.

Большое спасибо за помощь. :) Если вам нужна еще какая-либо информация. Дайте мне знать

Вернуться на верх