プロジェクトをマウントしてビルドできるビルド環境として 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行だけ変更したいので、少し多すぎるようです。