【问题标题】:Create default files for conan without install无需安装即可为柯南创建默认文件
【发布时间】:2019-03-07 14:04:00
【问题描述】:

我正在创建一个 docker 映像作为构建环境,我可以在其中挂载项目并构建它。对于构建,我使用 cmake 和柯南。该镜像的dockerfile:

FROM alpine:3.9

RUN ["apk", "add", "--no-cache", "gcc", "g++", "make", "cmake", "python3", "python3-dev", "linux-headers", "musl-dev"]
RUN ["pip3", "install", "--upgrade", "pip"]
RUN ["pip3", "install", "conan"]
WORKDIR /project

类似的文件

~/.conan/profiles/default

在我调用后创建

conan install ..

这样这些文件是在容器中而不是在图像中创建的。 conan 的默认行为是设置

compiler.libcxx=libstdc++

我想运行类似的东西

RUN ["sed", "-i", "s/compiler.libcxx=libstdc++/compiler.libcxx=libstdc++11/", "~/.conan/profiles/default"]

更改 libcxx 值,但此时此文件不存在。我发现柯南创建默认配置文件的唯一方法是安装一些东西。

目前我正在运行这个容器

docker run --rm -v $(dirname $(realpath $0))/project:/project build-environment /bin/sh -c "\
rm -rf build && \
mkdir build && \
cd build && \
conan install -s compiler.libcxx=libstdc++11 .. --build missing && \
cmake .. && \
cmake --build . ; \
chown -R $(id -u):$(id -u) /project/build \
"

但我需要删除-s compiler.libcxx=libstdc++11,因为它应该依赖于图像而不是由构建脚本修复。

有没有办法在图像中初始化柯南并在不安装任何东西的情况下编辑配置?目前我打算自己编写整个配置,但这似乎有点太多了,因为我想使用默认配置并且只更改一行。

【问题讨论】:

    标签: conan


    【解决方案1】:

    您还可以从正在运行的容器创建映像。尝试在运行的容器中安装柯南,然后创建它的图像。由于它被安装在正在运行的容器中,因此它将仅具有它的所有依赖项。要创建该图像,您可以点击此链接

    https://docs.docker.com/engine/reference/commandline/commit/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-15
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      相关资源
      最近更新 更多