Skip to content

Commit 1b2e5e4

Browse files
committed
build(Dockerfile): 优化 Docker 镜像构建过程
- 移除了不必要的注释,精简了 Dockerfile 结构 - 合并了多个 apt-get update 和 install 步骤,减少镜像层数 - 添加了 libpq-dev、libbrotli-dev 和 doxygen 包的安装- 使用 git submodule update --init --recursive 命令简化子模块初始化 - 修改了 cmake 构建配置,添加了详细日志输出 - 移除了设置默认端口和启动命令的步骤,以便在运行时灵活配置
1 parent da600bf commit 1b2e5e4

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

Dockerfile

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,42 @@
1-
# 使用官方Ubuntu基础镜像
21
FROM ubuntu:22.04
32

4-
# 设置非交互式前端以避免安装过程中出现提示
53
ENV DEBIAN_FRONTEND=noninteractive
64

7-
# 更新包列表并安装基本工具
5+
# 安装基础工具链
86
RUN apt-get update && apt-get install -y \
97
git \
108
cmake \
119
build-essential \
1210
curl \
1311
&& rm -rf /var/lib/apt/lists/*
1412

15-
# 安装主要依赖项(分步进行)
13+
# 安装主要依赖项
1614
RUN apt-get update && apt-get install -y \
1715
libjsoncpp-dev \
1816
uuid-dev \
1917
libssl-dev \
2018
zlib1g-dev \
21-
&& rm -rf /var/lib/apt/lists/*
22-
23-
# 安装数据库相关依赖
24-
RUN apt-get update && apt-get install -y \
19+
libpq-dev \
20+
libbrotli-dev \
2521
libmysqlclient-dev \
2622
libsqlite3-dev \
2723
libhiredis-dev \
28-
&& rm -rf /var/lib/apt/lists/*
29-
30-
# 安装其他依赖
31-
RUN apt-get update && apt-get install -y \
3224
libvulkan-dev \
3325
libcurl4-openssl-dev \
26+
doxygen \
3427
&& rm -rf /var/lib/apt/lists/*
3528

36-
# 设置工作目录
3729
WORKDIR /app
38-
39-
# 复制项目文件
4030
COPY . .
4131

42-
# 初始化并更新git子模块
43-
RUN git submodule init && git submodule update
32+
# 递归初始化所有子模块
33+
RUN git submodule update --init --recursive
4434

45-
# 创建构建目录并构建项目
35+
# 构建配置(添加详细日志)
4636
RUN mkdir build && \
4737
cd build && \
48-
cmake -DCMAKE_CXX_FLAGS="-w" -DCMAKE_C_FLAGS="-w" .. && \
49-
make -j$(nproc)
38+
cmake -DCMAKE_BUILD_TYPE=Release .. && \
39+
make -j$(nproc) VERBOSE=1
5040

51-
# 设置默认端口环境变量
5241
ENV PORT=8080
53-
54-
# 设置容器启动命令
5542
ENTRYPOINT ["sh", "-c", "./build/bin/UniAPI ${PORT}"]

0 commit comments

Comments
 (0)