0

プロジェクトをマウントしてビルドできるビルド環境として docker イメージを作成しています。ビルドには cmake と conan を使用します。このイメージの 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 値を変更しますが、このファイルは現時点では存在しません。conan によってデフォルトのプロファイルを作成する唯一の方法は、何かをインストールすることです。

現在、このコンテナを実行しています

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しかし、それはイメージに依存し、ビルドスクリプトによって修正されるべきではないため、削除する必要があります。

イメージ内のコナンを初期化し、何かをインストールせずに構成を編集する方法はありますか? 現在、私はすべての構成を自分で作成する予定ですが、デフォルト構成を使用して1行だけ変更したいので、少し多すぎるようです。

4

1 に答える 1