使用 Docker 搭建 Drogon 框架

Drogon 是一个基于 C++ 的高性能 Web 框架,支持异步 I/O 和协程。使用 Docker 可以快速搭建 Drogon 开发环境,避免依赖冲突和配置问题。

以下是使用 Docker 搭建 Drogon 框架的详细步骤:


1. 准备工作

  • 安装 Docker:确保本地已安装 Docker 和 Docker Compose。
  • 创建项目目录:用于存放 Drogon 项目代码和 Docker 配置文件。

2. 创建 Dockerfile

在项目根目录下创建 Dockerfile,用于定义 Drogon 开发环境的镜像。

# 使用官方 Ubuntu 镜像作为基础镜像
FROM ubuntu:22.04

# 安装依赖
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    git \
    libjsoncpp-dev \
    libssl-dev \
    uuid-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# 克隆 Drogon 源码
RUN git clone https://github.com/drogonframework/drogon.git /drogon

# 编译并安装 Drogon
WORKDIR /drogon
RUN mkdir build && cd build \
    && cmake .. \
    && make -j$(nproc) \
    && make install

# 设置工作目录
WORKDIR /app

# 暴露端口
EXPOSE 80

# 启动命令
CMD ["bash"]

3. 创建 docker-compose.yml

在项目根目录下创建 docker-compose.yml,用于定义和运行 Drogon 容器。

version: '3.8'

services:
  drogon:
    build: .
    container_name: drogon_app
    volumes:
      - .:/app  # 将本地目录挂载到容器中的 /app 目录
    ports:
      - "8080:80"  # 将容器的 80 端口映射到本地的 8080 端口
    tty: true
    stdin_open: true

4. 构建并运行容器

在项目根目录下执行以下命令:

# 构建镜像
docker-compose build

# 启动容器
docker-compose up -d

# 进入容器
docker-compose exec drogon bash

5. 创建 Drogon 项目

在容器中执行以下命令,创建一个新的 Drogon 项目:

# 进入工作目录
cd /app

# 使用 Drogon 创建项目
drogon_ctl create project my_drogon_app

# 进入项目目录
cd my_drogon_app

# 编译项目
mkdir build && cd build
cmake ..
make -j$(nproc)

6. 运行 Drogon 应用

在项目编译完成后,运行 Drogon 应用:

# 运行应用
./my_drogon_app

此时,Drogon 应用将在容器内的 80 端口运行。由于我们在 docker-compose.yml 中将容器的 80 端口映射到了本地的 8080 端口,因此可以通过 http://localhost:8080 访问应用。


7. 停止和清理容器

# 停止容器
docker-compose down

# 删除镜像(可选)
docker rmi <image_id>

8. 总结

通过以上步骤,您可以使用 Docker 快速搭建 Drogon 开发环境,并创建和运行 Drogon 应用。Docker 提供了隔离的环境,避免了依赖冲突和配置问题,非常适合开发和测试。

01-01 08:13