服务器设置和教程 · 5 10 月, 2024

CentOS 7 下使用 docker-compose 部署 Django 與 MySQL 實戰

CentOS 7 下使用 Docker-Compose 部署 Django 與 MySQL 實戰

在當今的開發環境中,Docker 已經成為一個不可或缺的工具。它能夠幫助開發者快速構建、測試和部署應用程式。本文將介紹如何在 CentOS 7 上使用 Docker-Compose 部署 Django 與 MySQL,並提供詳細的步驟和範例代碼。

環境準備

在開始之前,確保你的 CentOS 7 系統已經安裝了 Docker 和 Docker-Compose。可以通過以下命令來安裝:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

# 安裝 Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

建立 Django 專案

首先,我們需要創建一個新的 Django 專案。可以使用以下命令來創建一個名為 myproject 的 Django 專案:

django-admin startproject myproject
cd myproject

編寫 Dockerfile

在專案根目錄下創建一個名為 Dockerfile 的文件,並添加以下內容:

FROM python:3.8

# 設定工作目錄
WORKDIR /app

# 複製需求文件
COPY requirements.txt .

# 安裝依賴
RUN pip install --no-cache-dir -r requirements.txt

# 複製專案文件
COPY . .

# 開放端口
EXPOSE 8000

# 啟動 Django 伺服器
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

編寫 docker-compose.yml

接下來,在專案根目錄下創建一個名為 docker-compose.yml 的文件,並添加以下內容:

version: '3'

services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

  web:
    build: .
    restart: always
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      DB_HOST: db
      DB_NAME: mydatabase
      DB_USER: user
      DB_PASSWORD: password

volumes:
  db_data:

配置 Django 連接 MySQL

settings.py 文件中,修改資料庫配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'db',
        'PORT': '3306',
    }
}

啟動服務

現在可以使用以下命令來啟動 Docker 容器:

docker-compose up --build

這將會構建 Docker 映像並啟動 Django 和 MySQL 服務。你可以在瀏覽器中訪問 http://localhost:8000 來查看 Django 應用程式是否正常運行。

總結

本文介紹了如何在 CentOS 7 上使用 Docker-Compose 部署 Django 與 MySQL。這種方法不僅簡化了部署過程,還提高了應用程式的可移植性和可擴展性。若你需要穩定的 香港VPS 來運行你的應用程式,Server.HK 提供多種選擇,滿足不同需求。