29 lines
982 B
Docker
29 lines
982 B
Docker
|
# 载入动态库镜像
|
||
|
FROM ubuntu:20.04 AS builder
|
||
|
# 创建工作目录
|
||
|
WORKDIR /app
|
||
|
# 拷贝源代码
|
||
|
COPY src /app/src
|
||
|
COPY CMakeLists.txt /app
|
||
|
# 编译主程序并链接动态库
|
||
|
RUN apt-get update && apt-get install -y g++ make cmake
|
||
|
RUN mkdir build && cd build && cmake .. && make
|
||
|
# 分析依赖库 将所有需要的库全部拷贝待用
|
||
|
RUN mkdir /app/dependencies
|
||
|
# 注意全部使用绝对路径
|
||
|
RUN ldd /app/stt | grep "=>" | awk '{print $3}' | xargs -I {} cp --parents {} /app/dependencies
|
||
|
# 检查 /app/dependencies 目录的内容
|
||
|
#RUN ls -l /app/dependencies
|
||
|
|
||
|
FROM ubuntu:20.04
|
||
|
# 创建工作目录
|
||
|
WORKDIR /app
|
||
|
# 拷贝依赖库和可执行文件
|
||
|
COPY --from=builder /app/dependencies/lib /lib
|
||
|
#COPY --from=builder /app/dependencies/usr /usr
|
||
|
COPY --from=builder /app/stt /usr/local/bin
|
||
|
# 设置环境变量
|
||
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
|
||
|
ENV PATH=$PATH:/usr/local/bin
|
||
|
# 设置运行时执行文件 方便传递命令行参数
|
||
|
ENTRYPOINT ["stt"]
|