Create project Django with mysql using docker compose

Lượt xem: 241

Create project Django with mysql using docker compose

Docker đã cách mạng hóa cách chúng ta xây dựng, vận chuyển và chạy ứng dụng. Nó cung cấp một môi trường nhất quán và đáng tin cậy cho ứng dụng của bạn, giúp phát triển và triển khai dễ dàng hơn. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn quy trình docker hóa ứng dụng Django và MySQL. Chúng tôi sẽ đề cập đến mọi thứ từ thiết lập môi trường Docker đến chạy ứng dụng của bạn bên trong các container.

Điều kiện tiên quyết

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt các công cụ sau trên hệ thống của mình:

1.Docker: Tải xuống và cài đặt Docker từ trang web chính thức (Docker Website: https://www.docker.com/get-started/).
 
Bước 1: Tạo Dockerfile
Trong thư mục gốc của dự án Django, hãy tạo Dockerfile. Tệp này xác định cách ứng dụng Django của bạn sẽ được xây dựng bên trong một vùng chứa Docker. Sau đây là Dockerfile cơ bản cho ứng dụng Django:
 

# Use the official Python image.
FROM python:3.9

# Set the working directory.
WORKDIR /app

# Copy the current directory contents into the container at /app.
COPY . /app/

# Install any needed packages specified in requirements.txt.
RUN pip install --no-cache-dir -r requirements.txt

# Make port 8000 available to the world outside this container.
EXPOSE 8000

# Run the application.
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

Bước 2: Tạo file requirements.txt

Tệp này được lệnh RUN pip install -r requirements.txt trong Dockerfile của bạn sử dụng.


Django==4.0
mysqlclient

Bước 3: Tạo file docker-compose.yml

Tiếp theo, tạo một tệp docker-compose.yml trong thư mục gốc của dự án. Tệp này định nghĩa các dịch vụ và cấu hình của chúng, bao gồm ứng dụng Django và cơ sở dữ liệu MySQL. Sau đây là một tệp docker-compose.yml cơ bản:


services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: django_db
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/app
    ports:
      - "8000:8000"
    depends_on:
      - db

volumes:
  mysql_data:

Bước 3: Tạo project django


sudo docker compose run web django-admin startproject app .

Bước 5: Cấu hình cài đặt Django

Trong settings.py của dự án Django, Ví dụ:


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'db',
        'PORT': '3306',
    }
}

Bước 6:  Build and Run Containers

Bây giờ, bạn có thể xây dựng và chạy các container Docker của mình bằng các lệnh sau:


docker-compose build
docker-compose up

or

docker-compose up --build

Ứng dụng Django của bạn hiện đang chạy trong vùng chứa Docker và bạn có thể truy cập ứng dụng này trong trình duyệt web tại địa chỉ http://localhost:8000/.

Video