首页 > 解决方案 > cmake OUTPUT_VARIABLE 不适用于 docker build

问题描述

使用 cmake 运行 docker build 时出现一个奇怪的问题。

如果cmake .直接运行,则消息显示从 get_version.sh 获取的版本非常完美!!!! Warning !!!! build version <1.6.3>

但是,如果尝试从中构建图像,docker build . -t test则仅显示!!!! Warning !!!! build version <>.

这很奇怪!有人对这个问题有任何想法吗?

Dockerfile

FROM alpine:3.10

RUN mkdir build
WORKDIR /build

RUN apk add --update build-base cmake

COPY CMakeLists.txt CMakeLists.txt
COPY get_version.sh get_version.sh
RUN cmake .

CMakeLists.txt

cmake_minimum_required(VERSION 3.14)
project("testcmake")

execute_process(COMMAND chmod 777 ./get_version.sh)

execute_process(COMMAND ./get_version.sh
    OUTPUT_VARIABLE
    VERSION_INFO)
MESSAGE(STATUS "!!!! Warning !!!! build version <${VERSION_INFO}>")

get_version.sh

#!/bin/bash
set -x
retval=$(echo -ne "1.6.3")
echo -ne $retval

标签: dockercmakealpine

解决方案


推荐阅读