Инструмент 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 , и выполнить действия
- Create Database
(CREATE DATABASE DB_NAME CHARACTER SET UTF8;)
- Create User
CREATE USER invuser@SomeIP IDENTIFIED BY 'root';
- Grant Permission to user on that Database.
GRANT ALL PRIVILEGES ON DB_NAME.* TO invuser@SomeIP;
FLUSH PRIVILEGES;
Есть ли способ выполнить действия по созданию базы данных, пользователя и предоставления ему прав через скрипт? Или через файл docker?
Я в основном хочу иметь один файл скрипта или dockerfile, который запустит мое приложение.
И я не уверен, как этого добиться, когда мне нужно войти в мой контейнер mariadb для создания базы данных и т.д. и т.п.
Большое спасибо за помощь. :) Если вам нужна еще какая-либо информация. Дайте мне знать