diff --git a/infra b/infra
index 55af933fb2169b8a560e6c5afca826d301e440e7..56ae464665e191864ba833c99502639e1488035b 100755
--- a/infra
+++ b/infra
@@ -23,13 +23,17 @@ if [ $? -ne 0 ]; then
     DOCKER_COMPOSE_COMMAND="docker-compose"
 fi
 
-${DOCKER_COMPOSE_COMMAND} kill
+CPU_LIMIT=$(($(nproc)-1))
+CPU_LIMIT=$(($CPU_LIMIT <= 0 ? 1 : $CPU_LIMIT))
+
+CPU_LIMIT=${CPU_LIMIT} ${DOCKER_COMPOSE_COMMAND} kill
 
 # If argument is --run, run the docker compose file
 if [ "$1" = "--run" ]; then
     # Check if .env file exists
     if [ -f $ENV_FILE ]; then
-        ${DOCKER_COMPOSE_COMMAND} --env-file ${ENV_FILE} up --build -d
+        cp -f $ENV_FILE API/$ENV_FILE
+        CPU_LIMIT=${CPU_LIMIT} ${DOCKER_COMPOSE_COMMAND} --env-file ${ENV_FILE} up --build -d
     else
         echo "Need a file named ${ENV_FILE} providing environment variables."
         exit 2