From af265001a109fe21d3c8c2cb1ae337d25ab7caca Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 20:55:38 +0300 Subject: [PATCH 1/8] Update Readme --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e004714..ce43d26 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,11 @@ # Dockerized C++ -This repository contains a single Makefile helping to build C+ projects in a docker container. +This repository contains a single highly customizable Makefile helping to build C+ projects in a docker container. ## Usage -Either download the file into your repository and update the variables or if you want to stay tuned, add it as a git submodule. - -## Example -An example of usage can be found in the repository ["Dockerized C++ Build Example"](https://github.com/f-squirrel/dockerized_cpp_build_example). +Either download the file into your repository and update the variables or if +you want to stay tuned, add it as a git submodule and include it in your +top-level Makefile. In order to see availabe commands including user-defined, run `make help`: @@ -20,6 +19,9 @@ login Login to the container. Note: if the container is build-docker-deps-image Build the deps image. ``` +## Example +An example of usage can be found in the repository ["Dockerized C++ Build Example"](https://github.com/f-squirrel/dockerized_cpp_build_example). + ## List of variables | Variable name | Default value | Description | @@ -33,8 +35,8 @@ build-docker-deps-image Build the deps image. | DOCKER_DEPS_CONTAINER | ${DOCKER_DEPS_IMAGE} | The name of build's docker container | | DOCKER_DEPS_FILE | DockerfileBuildEnv | Dockerfile used for building the build image | | DOCKER_DEPS_IMAGE_BUILD_FLAGS | --no-cache=true | Flags used for building the image, note with this flag on, docker rebuilds from scratch the whole image | -| DOCKER_PREPEND_MAKEFILES | empty | The list of custom Makefiles to be included before default targets | -| DOCKER_APPEND_MAKEFILES | empty | The list of custom Makefiles to be included after default targets | +| DOCKER_PREPEND_MAKEFILES | empty | The list of space-separated custom Makefiles to be included before default targets | +| DOCKER_APPEND_MAKEFILES | empty | The list of space-separated ustom Makefiles to be included after default targets | | DOCKER_CMAKE_FLAGS | empty | Project specific CMake flags | | DOCKER_SHELL | bash | Shell used in the container | | LOCAL_SRC_PATH | Current directory | The path to the source files | From e1bfbd478807f19f8445895726bbff851b927b4e Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 20:56:13 +0300 Subject: [PATCH 2/8] Update Readme with license --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ce43d26..46b1d06 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + # Dockerized C++ This repository contains a single highly customizable Makefile helping to build C+ projects in a docker container. From 658843c3d724cefbfc81d9ac6a17a03b1f3cd550 Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 22:58:46 +0300 Subject: [PATCH 3/8] Clean readme --- README.md | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 46b1d06..e6defd0 100644 --- a/README.md +++ b/README.md @@ -26,27 +26,26 @@ An example of usage can be found in the repository ["Dockerized C++ Build Exampl ## List of variables -| Variable name | Default value | Description | -| ------------- | ------------- | ----------- | -| PROJECT_NAME | project | Name of the project, by default used in multiple places | -| DOCKER_CC | clang | C copmiler used in the project | -| DOCKER_CXX | clang++ | C++ copmiler used in the project | -| DOCKER_DEPS_REPO | ${PROJECT_NAME}/ | Docker repository where the build image is stored | -| DOCKER_DEPS_IMAGE | ${PROJECT_NAME}_build | The name of the build image | -| DOCKER_DEPS_VERSION | latest | Docker image version | -| DOCKER_DEPS_CONTAINER | ${DOCKER_DEPS_IMAGE} | The name of build's docker container | -| DOCKER_DEPS_FILE | DockerfileBuildEnv | Dockerfile used for building the build image | -| DOCKER_DEPS_IMAGE_BUILD_FLAGS | --no-cache=true | Flags used for building the image, note with this flag on, docker rebuilds from scratch the whole image | -| DOCKER_PREPEND_MAKEFILES | empty | The list of space-separated custom Makefiles to be included before default targets | -| DOCKER_APPEND_MAKEFILES | empty | The list of space-separated ustom Makefiles to be included after default targets | -| DOCKER_CMAKE_FLAGS | empty | Project specific CMake flags | -| DOCKER_SHELL | bash | Shell used in the container | -| LOCAL_SRC_PATH | Current directory | The path to the source files | -| DOCKER_SOURCE_PATH | /${PROJECT_NAME} | Path where source files are mounted in the container | -| DOCKER_BUILD_DIR | build | Cmake build directory | -| DOCKER_CTEST_TIMEOUT | 5000 | CMake test timeout | -| DOCKER_TEST_CORE_DIR | ${DOCKER_BUILD_DIR}/cores | Path to the core files. For more information on configuring core dumps in docker please refer [here](https://ddanilov.me/how-to-configure-core-dump-in-docker-container) | -| ADDITIONAL_RUN_PARAMS | empty | Additional docker run commands | -| BASIC_RUN_PARAMS | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | - +| Variable name | Default value | Description | +| ------------- | ------------- | ----------- | +| PROJECT_NAME | project | Name of the project, by default used in multiple places | +| DOCKER_CC | clang | C copmiler used in the project | +| DOCKER_CXX | clang++ | C++ copmiler used in the project | +| DOCKER_DEPS_REPO | ${PROJECT_NAME}/ | Docker repository where the build image is stored | +| DOCKER_DEPS_IMAGE | ${PROJECT_NAME}_build | The name of the build image | +| DOCKER_DEPS_VERSION | latest | Docker image version | +| DOCKER_DEPS_CONTAINER | ${DOCKER_DEPS_IMAGE} | The name of build's docker container | +| DOCKER_DEPS_FILE | DockerfileBuildEnv | Dockerfile used for building the build image | +| DOCKER_DEPS_IMAGE_BUILD_FLAGS | --no-cache=true | Flags used for building the image, note with this flag on, docker rebuilds from scratch the whole image | +| DOCKER_PREPEND_MAKEFILES | empty | The list of space-separated custom Makefiles to be included before default targets | +| DOCKER_APPEND_MAKEFILES | empty | The list of space-separated ustom Makefiles to be included after default targets | +| DOCKER_CMAKE_FLAGS | empty | Project specific CMake flags | +| DOCKER_SHELL | bash | Shell used in the container | +| LOCAL_SRC_PATH | Current directory | The path to the source files | +| DOCKER_SOURCE_PATH | /${PROJECT_NAME} | Path where source files are mounted in the container | +| DOCKER_BUILD_DIR | build | Cmake build directory | +| DOCKER_CTEST_TIMEOUT | 5000 | CMake test timeout | +| DOCKER_TEST_CORE_DIR | ${DOCKER_BUILD_DIR}/cores | Path to the core files. For more information on configuring core dumps in docker please refer [here](https://ddanilov.me/how-to-configure-core-dump-in-docker-container) | +| ADDITIONAL_RUN_PARAMS | empty | Additional docker run commands | +| BASIC_RUN_PARAMS | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | From da60103de9999f23fa55c37a268ee7fa37f852b8 Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 23:13:58 +0300 Subject: [PATCH 4/8] Update README --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e6defd0..e63c04e 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -# Dockerized C++ +# Dockerized C++ Build Environment This repository contains a single highly customizable Makefile helping to build C+ projects in a docker container. ## Usage -Either download the file into your repository and update the variables or if -you want to stay tuned, add it as a git submodule and include it in your -top-level Makefile. +* Add this repository as a git submodule to your project, for example as directory build_tools:
+`git submodule add https://github.com/f-squirrel/dockerized_cpp.git build_tools/` +* Create a Makefile in the root of your project's source tree +* Override the variables from the [list](#list-of-variables) in the Makefile +* Include the Makefile from this repository in your new Makefile: `include build_tools/Makefile` In order to see availabe commands including user-defined, run `make help`: From 72bd46ee828627186874799beed00cdd5c2951db Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 23:34:38 +0300 Subject: [PATCH 5/8] Make variable names more explicit --- Makefile | 20 ++++++++++---------- README.md | 6 +++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index b22816c..5916b21 100644 --- a/Makefile +++ b/Makefile @@ -17,22 +17,22 @@ DOCKER_APPEND_MAKEFILES?= DOCKER_CMAKE_FLAGS?= DOCKER_SHELL?=bash -LOCAL_SRC_PATH?=${CURDIR} +LOCAL_SOURCE_PATH?=${CURDIR} DOCKER_SOURCE_PATH?=/${PROJECT_NAME} DOCKER_BUILD_DIR?=build DOCKER_CTEST_TIMEOUT?=5000 DOCKER_TEST_CORE_DIR?=${DOCKER_BUILD_DIR}/cores -ADDITIONAL_RUN_PARAMS?= +DOCKER_ADDITIONAL_RUN_PARAMS?= -BASIC_RUN_PARAMS?=-it --init --rm --privileged=true \ +DOCKER_BASIC_RUN_PARAMS?=-it --init --rm --privileged=true \ --memory-swap=-1 \ --ulimit core=-1 \ --name="${DOCKER_DEPS_CONTAINER}" \ --workdir=${DOCKER_SOURCE_PATH} \ - --mount type=bind,source=${LOCAL_SRC_PATH},target=${DOCKER_SOURCE_PATH} \ - ${ADDITIONAL_RUN_PARAMS} \ + --mount type=bind,source=${LOCAL_SOURCE_PATH},target=${DOCKER_SOURCE_PATH} \ + ${DOCKER_ADDITIONAL_RUN_PARAMS} \ ${DOCKER_DEPS_REPO}${DOCKER_DEPS_IMAGE}:${DOCKER_DEPS_VERSION} IF_CONTAINER_RUNS=$(shell docker container inspect -f '{{.State.Running}}' ${DOCKER_DEPS_CONTAINER} 2>/dev/null) @@ -48,7 +48,7 @@ help: ## .PHONY: gen_cmake gen_cmake: ## Generate cmake files, used internally - docker run ${BASIC_RUN_PARAMS} \ + docker run ${DOCKER_BASIC_RUN_PARAMS} \ ${DOCKER_SHELL} -c \ "mkdir -p ${DOCKER_SOURCE_PATH}/${DOCKER_BUILD_DIR} && \ cd ${DOCKER_BUILD_DIR} && \ @@ -59,7 +59,7 @@ gen_cmake: ## Generate cmake files, used internally .PHONY: build build: gen_cmake ## Build source. In order to build a specific target run: make TARGET=. - docker run ${BASIC_RUN_PARAMS} \ + docker run ${DOCKER_BASIC_RUN_PARAMS} \ ${DOCKER_SHELL} -c \ "cd ${DOCKER_BUILD_DIR} && \ make -j $$(nproc) ${TARGET}" @@ -68,7 +68,7 @@ build: gen_cmake ## Build source. In order to build a specific target run: make .PHONY: test test: ## Run all tests - docker run ${BASIC_RUN_PARAMS} \ + docker run ${DOCKER_BASIC_RUN_PARAMS} \ ${DOCKER_SHELL} -c \ "mkdir -p ${DOCKER_TEST_CORE_DIR} && \ cd ${DOCKER_BUILD_DIR} && \ @@ -76,14 +76,14 @@ test: ## Run all tests .PHONY: clean clean: ## Clean build directory - docker run ${BASIC_RUN_PARAMS} \ + docker run ${DOCKER_BASIC_RUN_PARAMS} \ ${DOCKER_SHELL} -c \ "rm -rf ${DOCKER_BUILD_DIR}" .PHONY: login login: ## Login to the container. Note: if the container is already running, login into existing one @if [ "${IF_CONTAINER_RUNS}" != "true" ]; then \ - docker run ${BASIC_RUN_PARAMS} \ + docker run ${DOCKER_BASIC_RUN_PARAMS} \ ${DOCKER_SHELL}; \ else \ docker exec -it ${DOCKER_DEPS_CONTAINER} \ diff --git a/README.md b/README.md index e63c04e..8f14ba5 100644 --- a/README.md +++ b/README.md @@ -43,11 +43,11 @@ An example of usage can be found in the repository ["Dockerized C++ Build Exampl | DOCKER_APPEND_MAKEFILES | empty | The list of space-separated ustom Makefiles to be included after default targets | | DOCKER_CMAKE_FLAGS | empty | Project specific CMake flags | | DOCKER_SHELL | bash | Shell used in the container | -| LOCAL_SRC_PATH | Current directory | The path to the source files | +| LOCAL_SOURCE_PATH | Current directory | The path to the source files | | DOCKER_SOURCE_PATH | /${PROJECT_NAME} | Path where source files are mounted in the container | | DOCKER_BUILD_DIR | build | Cmake build directory | | DOCKER_CTEST_TIMEOUT | 5000 | CMake test timeout | | DOCKER_TEST_CORE_DIR | ${DOCKER_BUILD_DIR}/cores | Path to the core files. For more information on configuring core dumps in docker please refer [here](https://ddanilov.me/how-to-configure-core-dump-in-docker-container) | -| ADDITIONAL_RUN_PARAMS | empty | Additional docker run commands | -| BASIC_RUN_PARAMS | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | +| DOCKER_ADDITIONAL_RUN_PARAMS | empty | Additional docker run commands | +| DOCKER_BASIC_RUN_PARAMS | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | From 74fbb4b8c0ca4bb512370e59f0e7b8f3397e02a8 Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 23:36:43 +0300 Subject: [PATCH 6/8] Remove privilegded mode --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5916b21..8e364d7 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ DOCKER_TEST_CORE_DIR?=${DOCKER_BUILD_DIR}/cores DOCKER_ADDITIONAL_RUN_PARAMS?= -DOCKER_BASIC_RUN_PARAMS?=-it --init --rm --privileged=true \ +DOCKER_BASIC_RUN_PARAMS?=-it --init --rm \ --memory-swap=-1 \ --ulimit core=-1 \ --name="${DOCKER_DEPS_CONTAINER}" \ From 5256a651e8479c7c2a098f8bdcffac8f39eb93a3 Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Wed, 8 Sep 2021 23:43:12 +0300 Subject: [PATCH 7/8] Update README --- README.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 8f14ba5..c7eb759 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -# Dockerized C++ Build Environment +# Dockerized C/C++ Build Environment -This repository contains a single highly customizable Makefile helping to build C+ projects in a docker container. +This repository contains a single highly customizable Makefile helping to build C/C++ projects in a docker container. ## Usage * Add this repository as a git submodule to your project, for example as directory build_tools:
@@ -24,30 +24,30 @@ build-docker-deps-image Build the deps image. ``` ## Example -An example of usage can be found in the repository ["Dockerized C++ Build Example"](https://github.com/f-squirrel/dockerized_cpp_build_example). +An example of usage can be found in the repository ["Dockerized C/C++ Build Example"](https://github.com/f-squirrel/dockerized_cpp_build_example). ## List of variables -| Variable name | Default value | Description | -| ------------- | ------------- | ----------- | -| PROJECT_NAME | project | Name of the project, by default used in multiple places | -| DOCKER_CC | clang | C copmiler used in the project | -| DOCKER_CXX | clang++ | C++ copmiler used in the project | -| DOCKER_DEPS_REPO | ${PROJECT_NAME}/ | Docker repository where the build image is stored | -| DOCKER_DEPS_IMAGE | ${PROJECT_NAME}_build | The name of the build image | -| DOCKER_DEPS_VERSION | latest | Docker image version | -| DOCKER_DEPS_CONTAINER | ${DOCKER_DEPS_IMAGE} | The name of build's docker container | -| DOCKER_DEPS_FILE | DockerfileBuildEnv | Dockerfile used for building the build image | -| DOCKER_DEPS_IMAGE_BUILD_FLAGS | --no-cache=true | Flags used for building the image, note with this flag on, docker rebuilds from scratch the whole image | -| DOCKER_PREPEND_MAKEFILES | empty | The list of space-separated custom Makefiles to be included before default targets | -| DOCKER_APPEND_MAKEFILES | empty | The list of space-separated ustom Makefiles to be included after default targets | -| DOCKER_CMAKE_FLAGS | empty | Project specific CMake flags | -| DOCKER_SHELL | bash | Shell used in the container | -| LOCAL_SOURCE_PATH | Current directory | The path to the source files | -| DOCKER_SOURCE_PATH | /${PROJECT_NAME} | Path where source files are mounted in the container | -| DOCKER_BUILD_DIR | build | Cmake build directory | -| DOCKER_CTEST_TIMEOUT | 5000 | CMake test timeout | -| DOCKER_TEST_CORE_DIR | ${DOCKER_BUILD_DIR}/cores | Path to the core files. For more information on configuring core dumps in docker please refer [here](https://ddanilov.me/how-to-configure-core-dump-in-docker-container) | -| DOCKER_ADDITIONAL_RUN_PARAMS | empty | Additional docker run commands | -| DOCKER_BASIC_RUN_PARAMS | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | +| Variable name | Default value | Description | +| ------------- | ------------- | ----------- | +| `PROJECT_NAME` | project | Name of the project, by default used in multiple places | +| `DOCKER_CC` | clang | C copmiler used in the project | +| `DOCKER_CXX` | clang++ | C++ copmiler used in the project | +| `DOCKER_DEPS_REPO` | `${PROJECT_NAME}/` | Docker repository where the build image is stored | +| `DOCKER_DEPS_IMAGE` | `${PROJECT_NAME}_build` | The name of the build image | +| `DOCKER_DEPS_VERSION` | latest | Docker image version | +| `DOCKER_DEPS_CONTAINER` | `${DOCKER_DEPS_IMAGE}` | The name of build's docker container | +| `DOCKER_DEPS_FILE` | DockerfileBuildEnv | Dockerfile used for building the build image | +| `DOCKER_DEPS_IMAGE_BUILD_FLAGS` | `--no-cache=true` | Flags used for building the image, note with this flag on, docker rebuilds from scratch the whole image | +| `DOCKER_PREPEND_MAKEFILES` | empty | The list of space-separated custom Makefiles to be included before default targets | +| `DOCKER_APPEND_MAKEFILES` | empty | The list of space-separated ustom Makefiles to be included after default targets | +| `DOCKER_CMAKE_FLAGS` | empty | Project specific CMake flags | +| `DOCKER_SHELL` | bash | Shell used in the container | +| `LOCAL_SOURCE_PATH` | Current directory | The path to the source files | +| `DOCKER_SOURCE_PATH` | `/${PROJECT_NAME}` | Path where source files are mounted in the container | +| `DOCKER_BUILD_DIR` | build | Cmake build directory | +| `DOCKER_CTEST_TIMEOUT` | 5000 | CMake test timeout | +| `DOCKER_TEST_CORE_DIR` | `${DOCKER_BUILD_DIR}/cores` | Path to the core files. For more information on configuring core dumps in docker please refer [here](https://ddanilov.me/how-to-configure-core-dump-in-docker-container) | +| `DOCKER_ADDITIONAL_RUN_PARAMS` | empty | Additional docker run commands | +| `DOCKER_BASIC_RUN_PARAMS` | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | From d1022e162dabf1026fbcf6d227ae18e90a30fa6e Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Tue, 25 Apr 2023 20:19:56 +0300 Subject: [PATCH 8/8] feat: add non-root user --- Makefile | 8 ++++++++ README.md | 8 +++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 8e364d7..d1bada3 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,15 @@ DOCKER_TEST_CORE_DIR?=${DOCKER_BUILD_DIR}/cores DOCKER_ADDITIONAL_RUN_PARAMS?= +DOCKER_USER_ROOT=OFF + +ifeq ($(DOCKER_USER_ROOT),OFF) + DOCKER_USER?=--user $(shell id -u):$(shell id -g) +else +endif + DOCKER_BASIC_RUN_PARAMS?=-it --init --rm \ + ${DOCKER_USER} \ --memory-swap=-1 \ --ulimit core=-1 \ --name="${DOCKER_DEPS_CONTAINER}" \ diff --git a/README.md b/README.md index c7eb759..6d9bdbd 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,14 @@ This repository contains a single highly customizable Makefile helping to build C/C++ projects in a docker container. ## Usage + * Add this repository as a git submodule to your project, for example as directory build_tools:
`git submodule add https://github.com/f-squirrel/dockerized_cpp.git build_tools/` * Create a Makefile in the root of your project's source tree * Override the variables from the [list](#list-of-variables) in the Makefile * Include the Makefile from this repository in your new Makefile: `include build_tools/Makefile` -In order to see availabe commands including user-defined, run `make help`: +In order to see available commands including user-defined ones, run `make help`: ```plain $ make help @@ -24,6 +25,7 @@ build-docker-deps-image Build the deps image. ``` ## Example + An example of usage can be found in the repository ["Dockerized C/C++ Build Example"](https://github.com/f-squirrel/dockerized_cpp_build_example). ## List of variables @@ -31,7 +33,7 @@ An example of usage can be found in the repository ["Dockerized C/C++ Build Exam | Variable name | Default value | Description | | ------------- | ------------- | ----------- | | `PROJECT_NAME` | project | Name of the project, by default used in multiple places | -| `DOCKER_CC` | clang | C copmiler used in the project | +| `DOCKER_CC` | clang | C compiler used in the project | | `DOCKER_CXX` | clang++ | C++ copmiler used in the project | | `DOCKER_DEPS_REPO` | `${PROJECT_NAME}/` | Docker repository where the build image is stored | | `DOCKER_DEPS_IMAGE` | `${PROJECT_NAME}_build` | The name of the build image | @@ -50,4 +52,4 @@ An example of usage can be found in the repository ["Dockerized C/C++ Build Exam | `DOCKER_TEST_CORE_DIR` | `${DOCKER_BUILD_DIR}/cores` | Path to the core files. For more information on configuring core dumps in docker please refer [here](https://ddanilov.me/how-to-configure-core-dump-in-docker-container) | | `DOCKER_ADDITIONAL_RUN_PARAMS` | empty | Additional docker run commands | | `DOCKER_BASIC_RUN_PARAMS` | [link to the code](https://github.com/f-squirrel/dockerized_cpp/blob/master/Makefile#L29) | Default commands used for running the build container | - +| `DOCKER_USER_ROOT` | `OFF` | Runs container as root user |