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 提供多種選擇,滿足不同需求。