add dockerfile
This commit is contained in:
parent
77e8ac7da0
commit
3995ecce93
@ -1,6 +1,9 @@
|
|||||||
cmake_minimum_required(VERSION 3.15.2)
|
cmake_minimum_required(VERSION 3.15.2)
|
||||||
# 设置工程名称
|
# 设置工程名称
|
||||||
project(stt VERSION 1.2 LANGUAGES CXX)
|
project(stt VERSION 1.4 LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||||
|
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
|
||||||
|
|
||||||
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
|
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
|
||||||
# CMake默认的安装路径 Windows下为C:/Program\ Files/${Project_Name} Linux/Unix下为/usr/local
|
# CMake默认的安装路径 Windows下为C:/Program\ Files/${Project_Name} Linux/Unix下为/usr/local
|
||||||
@ -8,5 +11,8 @@ message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX})
|
|||||||
# CMake默认的变异类型为空
|
# CMake默认的变异类型为空
|
||||||
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
||||||
|
|
||||||
# 添加源文件地址
|
aux_source_directory(src STT_SRC)
|
||||||
add_subdirectory(src/)
|
|
||||||
|
add_executable(stt ${STT_SRC})
|
||||||
|
set_target_properties(stt PROPERTIES CXX_STANDARD 11)
|
||||||
|
install(TARGETS stt RUNTIME DESTINATION sbin)
|
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# 载入动态库镜像
|
||||||
|
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"]
|
@ -1,8 +0,0 @@
|
|||||||
aux_source_directory(. STT_SRC)
|
|
||||||
|
|
||||||
add_executable(stt ${STT_SRC})
|
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
|
||||||
set_target_properties(stt PROPERTIES CXX_STANDARD 11)
|
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
|
|
||||||
install(TARGETS stt RUNTIME DESTINATION sbin)
|
|
Loading…
Reference in New Issue
Block a user