top of page
  • Writer's pictureRahul R

Django development using Docker and MariaDB

1. Install Docker on your local machine.

2. Create a new directory for your Django project.

3. In the new directory, create a file called Dockerfile and paste the following code:


FROM python:3.8

ENV PYTHONUNBUFFERED 1

WORKDIR /app

COPY requirements.txt /app/requirements.txt

RUN pip install -r requirements.txt

COPY . /app

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

4. Save the file and run the following command to build the Docker image:

docker build -t django-dev .

5. Pull the MariaDB image from Docker Hub:

docker pull mariadb:latest

6. Create a new Dockerfile in the root of your Django project.In the Dockerfile, add the following lines:

FROM mariadb:latest  ENV MYSQL_DATABASE='mydatabase' ENV MYSQL_USER='root' ENV MYSQL_PASSWORD='some_password' ENV MYSQL_ROOT_PASSWORD='some_password'  CMD ["mysqld"]

7. Build the Docker image:

docker build -t mariadb .

8. Create a new docker-compose.yml file in the root of your Django project. In the docker-compose.yml file, add the following lines:


version: '3'  
services:   
    django:     
        image: django-dev     
        ports:       
            - "8000:8000"     
            depends_on:       
                - mariadb    
    mariadb:     
        image: mariadb     
        ports:       
            - "3306:3306"     
        environment:       
            - MYSQL_DATABASE='mydatabase'       
            - MYSQL_USER='root'       
            - MYSQL_PASSWORD='some_password'       
            - MYSQL_ROOT_PASSWORD='some_password'

9. Run the following command to start the Docker containers:

docker-compose up -d

10. Open a web browser and navigate to http://localhost:8000. You should see the Django development server running.


Note : You can now connect the Django development server image to the MariaDB image by adding the following lines to your settings.py file:

DATABASES = {     
    'default': {         
        'ENGINE': 'django.db.backends.mysql',         
        'NAME': os.environ['MYSQL_DATABASE'],         
        'USER': os.environ['MYSQL_USER'],         
        'PASSWORD': os.environ['MYSQL_PASSWORD'],         
        'HOST': 'mariadb',         
        'PORT': '3306',     
        } 
    }

Save and restart the project and your development server will be up and running connected to mariaDB.

21 views0 comments

Recent Posts

See All

If you have encountered an issue with Digital Ocean VPS or any other Ubuntu based VPS Servers the following might be helpful. At DEIENAMI, we understand that server issues can be a real headache, espe

bottom of page