首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不安装的情况下为conan创建默认文件

在不安装的情况下为conan创建默认文件
EN

Stack Overflow用户
提问于 2019-03-07 22:04:01
回答 1查看 193关注 0票数 0

我正在创建一个docker镜像作为一个构建环境,在这里我可以装载一个项目并构建它。对于build,我使用cmake和conan。此镜像的dockerfile:

代码语言:javascript
复制
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

文件,如

代码语言:javascript
复制
~/.conan/profiles/default

是在我调用

代码语言:javascript
复制
conan install ..

因此这些文件是在容器中创建的,而不是在映像中创建的。conan的默认行为是设置

代码语言:javascript
复制
compiler.libcxx=libstdc++

我想运行像这样的东西

代码语言:javascript
复制
RUN ["sed", "-i", "s/compiler.libcxx=libstdc++/compiler.libcxx=libstdc++11/", "~/.conan/profiles/default"]

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

目前,我正在运行这个容器

代码语言:javascript
复制
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并编辑配置?目前,我正计划自己编写整个配置,但这似乎有点太多了,因为我想使用缺省配置,只更改一行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-22 21:44:15

您还可以从正在运行的容器创建镜像。尝试在运行的容器中安装conan,然后创建它的镜像。因为它被安装在正在运行的容器中,所以它将只有它的所有依赖项。要创建该图像,请单击此链接

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55045668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档